UNPKG

feathers-authentication-management

Version:

Adds sign up verification, forgotten password reset, and other capabilities to local feathers-authentication

46 lines (45 loc) 2.08 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getShortToken = exports.getLongToken = exports.randomBytes = exports.randomDigits = void 0; const crypto_1 = require("crypto"); function randomDigits(len) { let str = ''; while (str.length < len) { str += parseInt('0x' + (0, crypto_1.randomBytes)(4).toString('hex')).toString(); } return str.substr(0, len); } exports.randomDigits = randomDigits; function randomBytes(len) { return __awaiter(this, void 0, void 0, function* () { return yield new Promise((resolve, reject) => { (0, crypto_1.randomBytes)(len, (err, buf) => err ? reject(err) : resolve(buf.toString('hex'))); }); }); } exports.randomBytes = randomBytes; const getLongToken = (len) => __awaiter(void 0, void 0, void 0, function* () { return yield randomBytes(len); }); exports.getLongToken = getLongToken; function getShortToken(len, ifDigits) { return __awaiter(this, void 0, void 0, function* () { if (ifDigits) { return randomDigits(len); } const str1 = yield randomBytes(Math.floor(len / 2) + 1); let str = str1.substr(0, len); if (str.match(/^[0-9]+$/)) { // tests will fail on all digits str = `q${str.substr(1)}`; // shhhh, secret. } return str; }); } exports.getShortToken = getShortToken;