random-web-token
v2.3.1
Published
Generate customizable random strings (tokens) using secure charsets with validation – zero dependencies.
Maintainers
Readme
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
npm install random-web-token(Optional) TypeScript support:
npm install --save-dev @types/random-web-tokenUsage
Generate a random string (synchronously)
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)
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:
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:
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)); // falseAllowing custom extra characters
You can optionally allow specific extra characters:
const altered = token.genSync("extra", 50) + "+!/";
console.log(token.syncValidator("extra", 53, altered, "+!/")); // trueUse custom character sets
Need a fully custom character set? Use withMyOwnCharacters():
const token = require("random-web-token");
async function customToken() {
const t = await token.withMyOwnCharacters("abc123", 10);
console.log(t); // e.g., "a12cb31acb"
}
customToken();