UNPKG

@qelos/auth

Version:

Express Passport authentication service

53 lines (52 loc) 2.02 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const user_1 = __importDefault(require("../models/user")); const users_1 = require("../services/users"); const config_1 = require("../../config"); const passport_local_1 = require("passport-local"); const dates_1 = require("../services/dates"); /** * Return the Passport Local Strategy object. */ module.exports = new passport_local_1.Strategy({ usernameField: 'username', passwordField: 'password', session: false, passReqToCallback: true, }, (req, username = '', password, done) => { var _a, _b; const { name, fullName, firstName, lastName, birthDate } = req.body || {}; const newUser = new user_1.default({ tenant: req.headers.tenant, username: username.toLowerCase().trim() || ((_b = (_a = req.body) === null || _a === void 0 ? void 0 : _a.email) === null || _b === void 0 ? void 0 : _b.toLowerCase().trim()), password: password.trim(), fullName: fullName || name || (`${firstName} ${lastName}`), firstName, lastName, birthDate: birthDate ? (0, dates_1.getAbsoluteDate)(birthDate) : undefined, roles: [config_1.defaultRole], }); const authType = req.body.authType || config_1.defaultAuthType; (0, users_1.setToken)({ user: newUser }, authType) .then(({ user, token, refreshToken, cookieToken }) => { done(null, { tenant: req.headers.tenant, token, refreshToken, cookieToken, user: { username: user.username, email: user.email, name: user.fullName, fullName: user.fullName, firstName: user.firstName, lastName: user.lastName, roles: user.roles, }, }); }) .catch(done); });