otpauth
Version:
One Time Password (HOTP/TOTP) library for Node.js and browsers
76 lines (59 loc) • 2.22 kB
Markdown
[][tags]
[][dependencies]
[][devDependencies]
[][npm]
***
One Time Password (HOTP/TOTP) library for Node.js and browsers.
## Installation
Install the module via `npm`.
```sh
npm install otpauth
```
## Usage
### Node.js
```javascript
import * as OTPAuth from 'otpauth';
let totp = new OTPAuth.TOTP({
issuer: 'ACME',
label: 'AzureDiamond',
algorithm: 'SHA1',
digits: 6,
period: 30,
secret: 'NB2W45DFOIZA' // or "OTPAuth.Secret.fromB32('NB2W45DFOIZA')"
});
// Generate TOTP token.
let token = totp.generate();
// Validate TOTP token.
let delta = totp.validate({
token: token,
window: 1
});
// Convert to Google Authenticator key URI.
// otpauth://totp/ACME:AzureDiamond?issuer=ACME&secret=NB2W45DFOIZA&algorithm=SHA1&digits=6&period=30
let uri = totp.toString(); // or "OTPAuth.URI.stringify(totp)"
// Convert from Google Authenticator key URI.
let parsedTotp = OTPAuth.URI.parse(uri);
```
```html
<script src="otpauth.umd.js"></script>
<script>
// Same as above...
</script>
```
See the [documentation][docs] page.
In Node.js, the same algorithms as [`Crypto.createHmac`][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][sjcl].
[][license] © [Héctor Molinero Fernández](https://hector.molinero.dev/).
[]: https://hectorm.github.io/otpauth/index.html
[]: https://github.com/hectorm/otpauth/blob/master/LICENSE.md
[]: https://github.com/hectorm/otpauth/tags
[]: https://www.npmjs.com/package/otpauth
[]: https://david-dm.org/hectorm/otpauth
[]: https://david-dm.org/hectorm/otpauth?type=dev
[]: https://nodejs.org/api/crypto.html#crypto_crypto_createhmac_algorithm_key_options
[]: https://github.com/bitwiseshiftleft/sjcl