mirror of
https://github.com/hectorm/otpauth.git
synced 2026-05-07 20:12:27 +00:00
a2fa3e85f1815b82fdb64b70fed74eb87c74285a
Bumps the npm-development-dependencies group with 5 updates: | Package | From | To | | --- | --- | --- | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `20.12.8` | `20.12.11` | | [chai](https://github.com/chaijs/chai) | `5.1.0` | `5.1.1` | | [globals](https://github.com/sindresorhus/globals) | `15.1.0` | `15.2.0` | | [playwright](https://github.com/microsoft/playwright) | `1.43.1` | `1.44.0` | | [rimraf](https://github.com/isaacs/rimraf) | `5.0.5` | `5.0.7` | Updates `@types/node` from 20.12.8 to 20.12.11 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `chai` from 5.1.0 to 5.1.1 - [Release notes](https://github.com/chaijs/chai/releases) - [Changelog](https://github.com/chaijs/chai/blob/main/History.md) - [Commits](https://github.com/chaijs/chai/compare/v5.1.0...v5.1.1) Updates `globals` from 15.1.0 to 15.2.0 - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](https://github.com/sindresorhus/globals/compare/v15.1.0...v15.2.0) Updates `playwright` from 1.43.1 to 1.44.0 - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](https://github.com/microsoft/playwright/compare/v1.43.1...v1.44.0) Updates `rimraf` from 5.0.5 to 5.0.7 - [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md) - [Commits](https://github.com/isaacs/rimraf/compare/v5.0.5...v5.0.7) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: chai dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies - dependency-name: globals dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: playwright dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-development-dependencies - dependency-name: rimraf dependency-type: direct:development update-type: version-update:semver-patch dependency-group: npm-development-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
OTPAuth
One Time Password (HOTP/TOTP) library for Node.js, Deno, Bun and browsers.
Usage
Node.js
import * as OTPAuth from "otpauth";
// Create a new TOTP object.
let totp = new OTPAuth.TOTP({
// Provider or service the account is associated with.
issuer: "ACME",
// Account identifier.
label: "AzureDiamond",
// Algorithm used for the HMAC function.
algorithm: "SHA1",
// Length of the generated tokens.
digits: 6,
// Interval of time for which a token is valid, in seconds.
period: 30,
// Arbitrary key encoded in Base32 or OTPAuth.Secret instance.
secret: "NB2W45DFOIZA", // or 'OTPAuth.Secret.fromBase32("NB2W45DFOIZA")'
});
// A cryptographically secure random secret can also be generated with:
let secret = new OTPAuth.Secret({ size: 20 });
// Generate a token (returns the current token as a string).
let token = totp.generate();
// Validate a token (returns the token delta or null if it is not found in the
// search window, in which case it should be considered invalid).
let delta = totp.validate({ token, window: 1 });
// Get the remaining seconds until the current token changes.
let seconds = (totp.period * (1 - ((Date.now() / 1000 / totp.period) % 1))) | 0;
// Convert to Google Authenticator key URI format (usually the URI is encoded
// in a QR code that can be scanned by the user. This functionality is outside
// the scope of the project, but there are many libraries that can be used for
// this purpose).
//
// 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 format.
totp = OTPAuth.URI.parse(uri);
Deno
import * as OTPAuth from "https://deno.land/x/otpauth@VERSION/dist/otpauth.esm.js";
// Same as above.
Bun
import * as OTPAuth from "otpauth";
// Same as above.
Browsers
<script src="https://cdnjs.cloudflare.com/ajax/libs/otpauth/VERSION/otpauth.umd.min.js"></script>
<script>
// Same as above.
</script>
Documentation
See the documentation page.
Supported hashing algorithms
In Node.js, the same algorithms as
Crypto.createHmac
function are supported, since it is used internally. In Deno, Bun and browsers, the SHA1, SHA224, SHA256, SHA384,
SHA512, SHA3-224, SHA3-256, SHA3-384 and SHA3-512 algorithms are supported by using the
jsSHA library.
License
Description
One Time Password (HOTP/TOTP) library for Node.js, Deno, Bun and browsers.
authauthenticatorbrowserbundenogoogle-authenticatorhotpjavascriptnodenode-jsnodejsotpotpauthsecuritytotptwo-factortwo-factor-authenticationtwo-steptwo-step-authentication
Readme
13 MiB
Languages
JavaScript
99%
HTML
1%