node-tokenize
v1.0.6
Published
A universal and secure token generator for authentication. Available in multiple languages, supports 2FA authentication flow.
Downloads
6
Readme
Tokenize for Node.js
Installation
With PNPM:
pnpm i node-tokenize
With Yarn:
yarn add node-tokenize
With NPM:
npm i node-tokenize
How to use it
import Tokenize from 'node-tokenize'
import Otp from 'node-tokenize/otp'
const tokenize = new Tokenize('Very strong and secure secret')
console.log(tokenize.generate('account_id')) // xxxxxxxx.xxxxxxxxxxx.xxxxxxxxx
console.log(tokenize.generate('account_id', 'prefix')) // prefix.xxxxxxxx.xxxxxxxxxxx.xxxxxxxxx
// Returns the account, or null if the token is invalid
console.log(tokenize.validate('xxxxxxxx.xxxxxxxxxxx.xxxxxxxxx', () => ({ tokensValidSince: 0 })))
// Get an OTP key
console.log(Otp.generateKey()) // You just need to save the base32 key in database
// Validate an OTP code
console.log(Otp.validateTotp("013370", "xxxxxxxxxxxxxxxx"))
console.log(Otp.validateHotp("013370", "xxxxxxxxxxxxxxxx", 1))
For specifications about how to use Tokenize in general, please refer to the top-level README.
Looking to use this in a Fastify application? Give fastify-tokenize a look! :D
TODO
- Make it available to the web (through Web Crypto eventually)
License
Like all official Tokenize implementation, this implementation is released under the BSD-3-Clause license.