%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;