UNPKG

feathers-authentication-management

Version:

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

253 lines (252 loc) 12.7 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()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AuthenticationManagementService = void 0; const debug_1 = __importDefault(require("debug")); const errors_1 = require("@feathersjs/errors"); const options_1 = require("../options"); const check_unique_1 = __importDefault(require("../methods/check-unique")); const identity_change_1 = __importDefault(require("../methods/identity-change")); const password_change_1 = __importDefault(require("../methods/password-change")); const resend_verify_signup_1 = __importDefault(require("../methods/resend-verify-signup")); const reset_password_1 = require("../methods/reset-password"); const send_reset_pwd_1 = __importDefault(require("../methods/send-reset-pwd")); const verify_signup_1 = require("../methods/verify-signup"); const verify_signup_set_password_1 = require("../methods/verify-signup-set-password"); const AuthenticationManagementBase_1 = require("./AuthenticationManagementBase"); const debug = (0, debug_1.default)('authLocalMgnt:service'); class AuthenticationManagementService extends AuthenticationManagementBase_1.AuthenticationManagementBase { constructor(app, options) { super(app); const defaultOptions = (0, options_1.makeDefaultOptions)(); this.options = Object.assign({}, defaultOptions, options); } _checkUnique(data, params) { return __awaiter(this, void 0, void 0, function* () { const passedParams = this.options.passParams && (yield this.options.passParams(params)); return yield (0, check_unique_1.default)(this.optionsWithApp, data.user, data.ownId, data.meta, passedParams); }); } checkUnique(data, params) { return __awaiter(this, void 0, void 0, function* () { return yield this._checkUnique(data, params); }); } _identityChange(data, params) { return __awaiter(this, void 0, void 0, function* () { const passedParams = this.options.passParams && (yield this.options.passParams(params)); return yield (0, identity_change_1.default)(this.optionsWithApp, data.user, data.password, data.changes, data.notifierOptions, passedParams); }); } identityChange(data, params) { return __awaiter(this, void 0, void 0, function* () { return yield this._identityChange(data, params); }); } _passwordChange(data, params) { return __awaiter(this, void 0, void 0, function* () { const passedParams = this.options.passParams && (yield this.options.passParams(params)); return yield (0, password_change_1.default)(this.optionsWithApp, data.user, data.oldPassword, data.password, data.notifierOptions, passedParams); }); } passwordChange(data, params) { return __awaiter(this, void 0, void 0, function* () { return yield this._passwordChange(data, params); }); } _resendVerifySignup(data, params) { return __awaiter(this, void 0, void 0, function* () { const passedParams = this.options.passParams && (yield this.options.passParams(params)); return yield (0, resend_verify_signup_1.default)(this.optionsWithApp, data.user, data.notifierOptions, passedParams); }); } resendVerifySignup(data, params) { return __awaiter(this, void 0, void 0, function* () { return yield this._resendVerifySignup(data, params); }); } _resetPasswordLong(data, params) { return __awaiter(this, void 0, void 0, function* () { const passedParams = this.options.passParams && (yield this.options.passParams(params)); return yield (0, reset_password_1.resetPwdWithLongToken)(this.optionsWithApp, data.token, data.password, data.notifierOptions, passedParams); }); } resetPasswordLong(data, params) { return __awaiter(this, void 0, void 0, function* () { return yield this._resetPasswordLong(data, params); }); } _resetPasswordShort(data, params) { return __awaiter(this, void 0, void 0, function* () { const passedParams = this.options.passParams && (yield this.options.passParams(params)); return yield (0, reset_password_1.resetPwdWithShortToken)(this.optionsWithApp, data.token, data.user, data.password, data.notifierOptions, passedParams); }); } resetPasswordShort(data, params) { return __awaiter(this, void 0, void 0, function* () { return yield this._resetPasswordShort(data, params); }); } _sendResetPassword(data, params) { return __awaiter(this, void 0, void 0, function* () { const passedParams = this.options.passParams && (yield this.options.passParams(params)); return yield (0, send_reset_pwd_1.default)(this.optionsWithApp, data.user, data.notifierOptions, passedParams); }); } sendResetPassword(data, params) { return __awaiter(this, void 0, void 0, function* () { return yield this._sendResetPassword(data, params); }); } _verifySignupLong(data, params) { return __awaiter(this, void 0, void 0, function* () { const passedParams = this.options.passParams && (yield this.options.passParams(params)); return yield (0, verify_signup_1.verifySignupWithLongToken)(this.optionsWithApp, data.token, data.notifierOptions, passedParams); }); } verifySignupLong(data, params) { return __awaiter(this, void 0, void 0, function* () { return yield this._verifySignupLong(data, params); }); } _verifySignupShort(data, params) { return __awaiter(this, void 0, void 0, function* () { const passedParams = this.options.passParams && (yield this.options.passParams(params)); return yield (0, verify_signup_1.verifySignupWithShortToken)(this.optionsWithApp, data.token, data.user, data.notifierOptions, passedParams); }); } verifySignupShort(data, params) { return __awaiter(this, void 0, void 0, function* () { return yield this._verifySignupShort(data, params); }); } _verifySignupSetPasswordLong(data, params) { return __awaiter(this, void 0, void 0, function* () { const passedParams = this.options.passParams && (yield this.options.passParams(params)); return yield (0, verify_signup_set_password_1.verifySignupSetPasswordWithLongToken)(this.optionsWithApp, data.token, data.password, data.notifierOptions, passedParams); }); } verifySignupSetPasswordLong(data, params) { return __awaiter(this, void 0, void 0, function* () { return yield this._verifySignupSetPasswordLong(data, params); }); } _verifySignupSetPasswordShort(data, params) { return __awaiter(this, void 0, void 0, function* () { const passedParams = this.options.passParams && (yield this.options.passParams(params)); return yield (0, verify_signup_set_password_1.verifySignupSetPasswordWithShortToken)(this.optionsWithApp, data.token, data.user, data.password, data.notifierOptions, passedParams); }); } verifySignupSetPasswordShort(data, params) { return __awaiter(this, void 0, void 0, function* () { return yield this._verifySignupSetPasswordShort(data, params); }); } _create(data, params) { return __awaiter(this, void 0, void 0, function* () { debug(`create called. action=${data.action}`); try { if (data.action === 'checkUnique') { return yield this._checkUnique({ user: data.value, meta: data.meta, ownId: data.ownId }, params); } else if (data.action === 'resendVerifySignup') { return yield this._resendVerifySignup({ user: data.value, notifierOptions: data.notifierOptions }, params); } else if (data.action === 'verifySignupLong') { return yield this._verifySignupLong({ token: data.value, notifierOptions: data.notifierOptions }, params); } else if (data.action === 'verifySignupShort') { return yield this._verifySignupShort({ token: data.value.token, user: data.value.user, notifierOptions: data.notifierOptions }, params); } else if (data.action === 'verifySignupSetPasswordLong') { return yield this._verifySignupSetPasswordLong({ password: data.value.password, token: data.value.token, notifierOptions: data.notifierOptions }, params); } else if (data.action === 'verifySignupSetPasswordShort') { return yield this._verifySignupSetPasswordShort({ password: data.value.password, token: data.value.token, user: data.value.user, notifierOptions: data.notifierOptions }, params); } else if (data.action === 'sendResetPwd') { return yield this._sendResetPassword({ user: data.value, notifierOptions: data.notifierOptions }, params); } else if (data.action === 'resetPwdLong') { return yield this._resetPasswordLong({ password: data.value.password, token: data.value.token, notifierOptions: data.notifierOptions }, params); } else if (data.action === 'resetPwdShort') { return yield this._resetPasswordShort({ password: data.value.password, token: data.value.token, user: data.value.user, notifierOptions: data.notifierOptions }, params); } else if (data.action === 'passwordChange') { return yield this._passwordChange({ oldPassword: data.value.oldPassword, password: data.value.password, user: data.value.user, notifierOptions: data.notifierOptions }, params); } else if (data.action === 'identityChange') { return yield this._identityChange({ changes: data.value.changes, password: data.value.password, user: data.value.user, notifierOptions: data.notifierOptions }, params); } else if (data.action === 'options') { return this.options; } } catch (err) { return yield Promise.reject(err); } throw new errors_1.BadRequest( //@ts-expect-error action is of type never // eslint-disable-next-line @typescript-eslint/restrict-template-expressions `Action '${data.action}' is invalid.`, { errors: { $className: 'badParams' } }); }); } } exports.AuthenticationManagementService = AuthenticationManagementService;