One Time Password (HOTP/TOTP) library for Node.js and browser.
Install the module via npm
.
$ npm install otpauth
const OTPAuth = require('otpauth');
// Generate a random secret
let randomTOTP = new OTPAuth.TOTP();
// Specify a custom secret
let customTOTP = new OTPAuth.TOTP({
'issuer': 'ACME',
'label': 'AzureDiamond',
'algorithm': 'SHA512',
'digits': 8,
'period': 20,
'secret': new OTPAuth.Secret({
'buffer': OTPAuth.Utils.b32.encode('NB2W45DFOIZA')
})
});
// Convert to Google Authenticator key URI
console.log(customTOTP.toString());
// Generate token
console.log(customTOTP.generate());
<script src="otpauth.js"></script>
<script>
var randomTOTP = new OTPAuth.TOTP();
// Same as above...
</script>
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.
See the documentation page.