UNPKG

feathers-authentication-management

Version:

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

46 lines (45 loc) 2.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getUserData = void 0; const errors_1 = require("@feathersjs/errors"); const date_or_number_to_number_1 = require("./date-or-number-to-number"); function checkOneUser(users) { if (users.length === 0) { throw new errors_1.BadRequest('User not found.', { errors: { $className: 'badParams' } }); } if (users.length !== 1) { throw new errors_1.BadRequest('More than 1 user selected.', { errors: { $className: 'badParams' } }); } return users[0]; } function checkUserChecks(user, checks) { checks = checks || []; if (checks.includes('isNotVerified') && user.isVerified) { throw new errors_1.BadRequest('User is already verified.', { errors: { $className: 'isNotVerified' } }); } if (checks.includes('isNotVerifiedOrHasVerifyChanges') && user.isVerified && !Object.keys(user.verifyChanges || {}).length) { throw new errors_1.BadRequest('User is already verified & not awaiting changes.', { errors: { $className: 'nothingToVerify' } }); } if (checks.includes('isVerified') && !user.isVerified) { throw new errors_1.BadRequest('User is not verified.', { errors: { $className: 'isVerified' } }); } if (checks.includes('verifyNotExpired') && (0, date_or_number_to_number_1.dateOrNumberToNumber)(user.verifyExpires) < Date.now()) { throw new errors_1.BadRequest('Verification token has expired.', { errors: { $className: 'verifyExpired' } }); } if (checks.includes('resetNotExpired') && (0, date_or_number_to_number_1.dateOrNumberToNumber)(user.resetExpires) < Date.now()) { throw new errors_1.BadRequest('Password reset token has expired.', { errors: { $className: 'resetExpired' } }); } } function getUserData(data, checks) { const users = Array.isArray(data) ? data : data.data; const user = checkOneUser(users); checkUserChecks(user, checks); return user; } exports.getUserData = getUserData;