One Time Password (HOTP/TOTP) library for Node.js and browser.
Clone or download
Latest commit cbfd032 Jun 3, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist 3.2.1 Jun 3, 2018
docs 3.2.1 Jun 3, 2018
src Comply with the new ESLint rules Nov 9, 2017
test Added unminified build Apr 28, 2018
.esdoc.json Updated username Jun 3, 2018
.eslintignore Improved Node.js detection and updated documentation Jul 21, 2017
.eslintrc.yml Add missing JSDoc tag and remove ESlint rule 'no-console' Jul 22, 2017
.gitignore Upload docs Jul 21, 2017
LICENSE.md Update license year Jan 6, 2018
README.md Updated username Jun 3, 2018
bower.json
karma.conf.js
package-lock.json 3.2.1 Jun 3, 2018
package.json 3.2.1 Jun 3, 2018
webpack.config.js

README.md

Last version Dependencies status Dev dependencies status NPM status Documentation


OTPAuth

One Time Password (HOTP/TOTP) library for Node.js and browser.

Installation

Install the module via npm.

npm install otpauth

Usage

Node.js

const OTPAuth = require('otpauth');

let totp = new OTPAuth.TOTP({
	issuer: 'ACME',
	label: 'AzureDiamond',
	algorithm: 'SHA1',
	digits: 6,
	period: 30,
	secret: OTPAuth.Secret.fromB32('NB2W45DFOIZA')
});

// Generate TOTP token.
let token = totp.generate();

// Validate TOTP token.
let delta = totp.validate({
	token: token,
	window: 10
});

// Convert to Google Authenticator key URI:
//   otpauth://totp/ACME:AzureDiamond?issuer=ACME&secret=NB2W45DFOIZA&algorithm=SHA1&digits=6&period=30
let uri = totp.toString();

Browser

<script src="otpauth.min.js"></script>
<script>
	// Same as above...
</script>

Supported hashing algorithms

In Node.js, the same algorithms as Crypto.createHmac function are supported, since it is used internally. In browsers, the SHA1, SHA256 and SHA512 algorithms are supported by using the Stanford Javascript Crypto Library.

Documentation

See the documentation page.

License

MIT License © Héctor Molinero Fernández.