UNPKG

@greenpress/auth

Version:

Express Passport authentication service

34 lines (33 loc) 1.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const config_1 = require("../../config"); const users_1 = require("../services/users"); const passport_local_1 = require("passport-local"); module.exports = new passport_local_1.Strategy({ usernameField: 'email', passwordField: 'password', session: false, passReqToCallback: true, }, (req, email, password, done) => { const query = { email: email.trim(), tenant: req.headers.tenant }; const authType = req.body.authType || config_1.defaultAuthType; if (req.body.roles && req.body.roles instanceof Array) { query.roles = { $in: req.body.roles }; } (0, users_1.getUser)(query) .then((user) => (0, users_1.comparePassword)(user, password)) .then((user) => (0, users_1.setToken)(user, authType)) .then(({ user, token, refreshToken, cookieToken }) => { done(null, { token, refreshToken, cookieToken, user: { email: user.email, name: user.name, roles: user.roles, }, }); }) .catch(done); });