UNPKG

fme-tradechat-server

Version:

tradechat server

61 lines 3.18 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); // config/passport.js // load all the things we need var LocalStrategy = require('passport-local').Strategy; const fme_logger_1 = require("fme-logger"); var L = new fme_logger_1.Log("Passport"); // load up the user model // var Code = require('../../tradechat-db/models/codes.js'); var valid = require('validator'); var ObjectId = require('mongodb').ObjectId; class PassportController { constructor(tradechatServer, passport) { passport.serializeUser((user, done) => { L.info("In passport serailizer", user._id); done(null, user._id); }); passport.deserializeUser((id, done) => __awaiter(this, void 0, void 0, function* () { // L.info("###############Deserial",id,done); var user = yield tradechatServer.users.getById(id); if (!user) { L.error("deserialze user not found 0", id); done("no user id, " + id, null); } done(null, user); })); passport.use('local-login', new LocalStrategy({ // by default, local strategy uses username and password, we will override with email usernameField: 'email', passwordField: 'password', passReqToCallback: true // allows us to pass back the entire request to the callback }, (req, email, password, done) => __awaiter(this, void 0, void 0, function* () { L.info("logging in", email); let cleanEmail = email.toLowerCase().trim(); var users = yield tradechatServer.users.userDb.find({ 'local.email': cleanEmail }).toArray(); if (users.length == 0) { L.error("local-login: no user found", cleanEmail); return done(null, false, req.flash("message", "no user by that name found")); } if (users.length > 1) { L.error("multiple users with this email!", cleanEmail); } var user = users[0]; if (!tradechatServer.users.checkPassword(password.trim(), user)) { L.info("user", email, "attempted to sign in with incorrect password"); return done(null, false, req.flash("message", 'Oops! Wrong password.')); // create the loginMessage and save it to } return done(null, user); }))); } } exports.PassportController = PassportController; //# sourceMappingURL=passport.js.map