Two-factor authentication implementation in pure javascript. One-time password generator (HOTP/TOTP) with support for Google Authenticator.
Preview
npm i totp.js
const TOTP = require('totp.js');
// generate a base32 secret key
const key = TOTP.randomKey();
// 'GAXGGYT2OU2DEOJR'
const totp = new TOTP(key);
const code = totp.genOTP();
// '552179'
totp.verify(code)
// true
// generate Google Authenticator supported URL
totp.gaURL('handsome@totp.js', 'Totp.js')
// 'otpauth://totp/handsome@totp.js?issuer=Totp.js&secret=GAXGGYT2OU2DEOJR'
// OR
const totp2 = new TOTP(TOTP.base32.encode('your key'));
totp2.genOTP()
<script src="./dist/totp.min.js" />
<script>
var key = TOTP.randomKey();
var totp = new TOTP(key);
console.log(totp.genOTP());
</script>
Enjoy!
© MIT