UNPKG

random-web-token

Version:

Generate customizable random strings (tokens) using secure charsets with validation – zero dependencies.

128 lines (83 loc) 2.88 kB
# random-web-token This package uses the secure Node.js crypto module. A lightweight utility for generating customizable random strings (a.k.a. "tokens") using predefined or custom character sets. Includes simple validation to check whether a given string matches a specific character set and length. Ideal for user-facing identifiers such as activation links, invitation links, forgot password links, or other non-sensitive unique strings. --- ## Installation ```bash npm install random-web-token ``` ### (Optional) TypeScript support: ```bash npm install --save-dev @types/random-web-token ``` --- ## Usage ### Generate a random string (synchronously) ```js const token = require("random-web-token"); const generated = token.genSync("extra", 50); console.log(generated); // e.g., "fT7ZkWA4NpDqF0BjgY..." ``` --- ### Generate a random string (asynchronously with `await`) ```js const token = require("random-web-token"); async function generate() { const generated = await token.genAsync("extra", 50); console.log(generated); // e.g., "h8YkMRaWg5tBz4QEX..." } generate(); ``` **TypeScript version:** ```ts import * as token from "random-web-token"; async function generate() { const generated = await token.genAsync("extra", 50); console.log(generated); } generate(); // -> sHF3p8zZCTdAmJ0cyS60NK... ``` --- ## Character sets Use one of the predefined sets as the first argument when generating a string: | Name | Characters Used | | --------------- | --------------- | | `"normal"` | a–z | | `"normal+"` | A–Z | | `"medium"` | a–z, 0–9 | | `"medium+"` | A–Z, 0–9 | | `"extra"` | a–z, A–Z, 0–9 | | `"onlyNumbers"` | 0–9 | --- ## Validate a string You can validate whether a given string matches a specific character set and length: ```js const token = require("random-web-token"); const t = token.genSync("extra", 50); // Valid case console.log(token.syncValidator("extra", 50, t)); // true // Invalid: wrong length console.log(token.syncValidator("extra", 40, t)); // false // Invalid: wrong character set console.log(token.syncValidator("normal", 50, t)); // false ``` ### Allowing custom extra characters You can optionally allow specific extra characters: ```js const altered = token.genSync("extra", 50) + "+!/"; console.log(token.syncValidator("extra", 53, altered, "+!/")); // true ``` --- ## Use custom character sets Need a fully custom character set? Use `withMyOwnCharacters()`: ```js const token = require("random-web-token"); async function customToken() { const t = await token.withMyOwnCharacters("abc123", 10); console.log(t); // e.g., "a12cb31acb" } customToken(); ``` ---