Implementation of two-factor authentication in Node, made simple.
Credit for original implementation on which this has been abstracted from goes to node-2fa - Jeremy Scalpello.
This has been reworked from the ground up to:
- Not be reliant on Google Charts for QR code generation, and instead return a base64-png image.
- Full typescript support.
There are a number of applications which support 2-Factor Authentication, namely
- Authy iPhone | Android | Chrome | Linux | OS X
- Google Authenticator iPhone | Android
- Microsoft Authenticator iPhone | Android
This module uses notp
which implements TOTP
(RFC 6238)
(the Authenticator standard), which is based on HOTP
(RFC 4226)
to provide codes that are exactly compatible with all other Authenticator apps and services that use them.
npm install 2fa-plus --save
import { generateSecret } from "2fa-plus";
const secret = generateSecret('Name', 'account@demo.com');
// output: { secret, uri, qr }
import { generateToken } from "2fa-plus";
const token = generateToken(secret.secret);
// output: token
import { verifyToken } from "2fa-plus";
const isValid = verifyToken(secret, token);
// output: true/false