@greenpress/auth
Version:
Express Passport authentication service
43 lines (42 loc) • 1.37 kB
JavaScript
;
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");
/**
* Return the Passport Local Strategy object.
*/
module.exports = new passport_local_1.Strategy({
usernameField: 'email',
passwordField: 'password',
session: false,
passReqToCallback: true,
}, (req, email, password, done) => {
const name = (req.body && req.body.name) || '';
const newUser = new user_1.default({
tenant: req.headers.tenant,
email: email.trim(),
password: password.trim(),
name,
roles: [config_1.defaultRole],
});
const authType = req.body.authType || config_1.defaultAuthType;
(0, users_1.setToken)(newUser, authType)
.then(({ user, token, refreshToken, cookieToken }) => {
done(null, {
token,
refreshToken,
cookieToken,
user: {
email: user.email,
name: user.name,
roles: user.roles,
},
});
})
.catch(done);
});