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
JavaScript
;
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; } });