random-web-token
Version:
Generate customizable random strings (tokens) using secure charsets with validation – zero dependencies.
21 lines (20 loc) • 619 B
JavaScript
const crypto = require("crypto");
module.exports = (characters, length) => {
return new Promise((resolve, reject) => {
try {
let newToken = [];
const setLength = characters.length;
if (setLength === 0) {
return reject(new Error("Character set cannot be empty."));
}
for (let i = 0; i < length; i++) {
let randomNumber = crypto.randomInt(setLength);
let tokenChararacter = characters[randomNumber];
newToken.push(tokenChararacter);
}
resolve(newToken.join(""));
} catch (error) {
reject(error);
}
});
};