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
JavaScript
"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;