%PDF- %PDF-
Direktori : /home/opti/workflow/ |
Current File : /home/opti/workflow/passport.js |
var passport = require("passport"); var con = require('./config'); var LocalStrategy = require('passport-local').Strategy; var bcrypt = require('bcrypt'); // used to serialize the user for the session passport.serializeUser(function (user, done) { user.id = user.insertId || user.id done(null, user.id); }); // used to deserialize the user passport.deserializeUser(function (id, done) { let sql = `SELECT * FROM Users WHERE id= '${id}'`; con.query(sql, function (err, user) { user = user[0]; done(err, user); }) }); passport.use('local-signup', new LocalStrategy({ usernameField: 'email', passwordField: 'password', passReqToCallback: true }, function (req, email, password, done) { let userId = ''; let globalOrgId =''; var company = { name: req.body.name, address: req.body.address, description: req.body.description }; let sql = `INSERT INTO Companies (name, address, description) VALUES ('${company.name}','${company.address}', '${company.description}' )`; con.query(sql, function (err, result) { if (err) { return done(err) } var orgId = result.insertId globalOrgId = result.insertIid var salt = bcrypt.genSaltSync(10); var hash = bcrypt.hashSync(req.body.password, salt); var today = new Date(); let obj = { firstName: req.body.firstName, lastName: req.body.lastName, phone: req.body.phone, email: req.body.email, orgId: orgId, //companyId, orgId, status: 1, roleId: 'isAdmin', password: hash, createdAt: today } let sql2 = `INSERT INTO Users (firstName, lastName, phone, email, password, orgId, roleId) VALUES ('${obj.firstName}', '${obj.lastName}', '${obj.phone}', '${obj.email}', '${obj.password}', '${obj.orgId}', '${obj.roleId}')`; con.query(sql2, function (err, result) { if (err) { return done(err); } userId = result.id; return done(null, result); }); }); } )); passport.use('local-login', new LocalStrategy({ usernameField: 'email', passwordField: 'password', passReqToCallback: true }, function (req, email, password, done) { let sql2 = `SELECT * FROM Users WHERE email='${email}'`; con.query(sql2, function (err, result) { if (err) return done(err); // if no user is found, return the message if (result.length < 1) { return done(null, false, req.flash('loginMessage', 'Wrong Credentials!')); } else if (result.length > 0) { if (bcrypt.compareSync(password, result[0].password)) { return done(null, result[0]); } } }) } )); module.exports = passport;