UNPKG

feathers-authentication-management

Version:

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

65 lines (64 loc) 4.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sanitizeUserForNotifier = exports.sanitizeUserForClient = exports.notify = exports.hashPassword = exports.getUserData = exports.comparePasswords = exports.cloneObject = exports.randomDigits = exports.randomBytes = exports.getShortToken = exports.getLongToken = exports.ensureObjPropsValid = exports.ensureFieldHasChanged = exports.ensureValuesAreStrings = exports.concatIDAndHash = exports.deconstructId = exports.isDateAfterNow = void 0; const errors_1 = require("@feathersjs/errors"); function isDateAfterNow(date, delay = 0) { if (date instanceof Date) date = date.getTime(); return date > Date.now() + delay; } exports.isDateAfterNow = isDateAfterNow; function deconstructId(token) { if (!token.includes('___')) { throw new errors_1.BadRequest('Token is not in the correct format.', { errors: { $className: 'badParams' } }); } return token.slice(0, token.indexOf('___')); } exports.deconstructId = deconstructId; function concatIDAndHash(id, token) { return `${id}___${token}`; } exports.concatIDAndHash = concatIDAndHash; function ensureValuesAreStrings(...values) { if (!values.every(str => typeof str === 'string')) { throw new errors_1.BadRequest('Expected string value. (authLocalMgnt)', { errors: { $className: 'badParams' } }); } } exports.ensureValuesAreStrings = ensureValuesAreStrings; /** * Verify that obj1 and obj2 have different 'field' field * Returns false if either object is null/undefined */ function ensureFieldHasChanged(obj1, obj2) { return (obj1 == null || obj2 == null) ? () => false : field => obj1[field] !== obj2[field]; } exports.ensureFieldHasChanged = ensureFieldHasChanged; function ensureObjPropsValid(obj, props, allowNone) { const keys = Object.keys(obj); const valid = keys.every(key => props.includes(key) && typeof obj[key] === 'string'); if (!valid || (keys.length === 0 && !allowNone)) { throw new errors_1.BadRequest('User info is not valid. (authLocalMgnt)', { errors: { $className: 'badParams' } }); } } exports.ensureObjPropsValid = ensureObjPropsValid; var crypto_1 = require("./crypto"); Object.defineProperty(exports, "getLongToken", { enumerable: true, get: function () { return crypto_1.getLongToken; } }); Object.defineProperty(exports, "getShortToken", { enumerable: true, get: function () { return crypto_1.getShortToken; } }); Object.defineProperty(exports, "randomBytes", { enumerable: true, get: function () { return crypto_1.randomBytes; } }); Object.defineProperty(exports, "randomDigits", { enumerable: true, get: function () { return crypto_1.randomDigits; } }); var clone_object_1 = require("./clone-object"); Object.defineProperty(exports, "cloneObject", { enumerable: true, get: function () { return clone_object_1.cloneObject; } }); var compare_passwords_1 = require("./compare-passwords"); Object.defineProperty(exports, "comparePasswords", { enumerable: true, get: function () { return compare_passwords_1.comparePasswords; } }); var get_user_data_1 = require("./get-user-data"); Object.defineProperty(exports, "getUserData", { enumerable: true, get: function () { return get_user_data_1.getUserData; } }); var hash_password_1 = require("./hash-password"); Object.defineProperty(exports, "hashPassword", { enumerable: true, get: function () { return hash_password_1.hashPassword; } }); var notify_1 = require("./notify"); Object.defineProperty(exports, "notify", { enumerable: true, get: function () { return notify_1.notify; } }); var sanitize_user_for_client_1 = require("./sanitize-user-for-client"); Object.defineProperty(exports, "sanitizeUserForClient", { enumerable: true, get: function () { return sanitize_user_for_client_1.sanitizeUserForClient; } }); var sanitize_user_for_notifier_1 = require("./sanitize-user-for-notifier"); Object.defineProperty(exports, "sanitizeUserForNotifier", { enumerable: true, get: function () { return sanitize_user_for_notifier_1.sanitizeUserForNotifier; } });