node-tokenize

A universal and secure token generator for authentication. Available in multiple languages, supports 2FA authentication flow.

Usage no npm install needed!

<script type="module">
  import nodeTokenize from 'https://cdn.skypack.dev/node-tokenize';
</script>

README

Tokenize for Node.js

ko-fi
License

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.