I am working on project where i have to create two login or different user employee or customer how can create two local passport in node js with sequelize
Couldn't find it in the docs but passport.use()
can receive name
as the first param.
passport.use('local-employee', new LocalStrategy(...))
passport.use('local-customer', new LocalStrategy(...))
full example:
const express = require('express')
const passport = require('passport');
const LocalStrategy = require('passport-local');
const app = express();
app.use(require('cookie-parser')());
app.use(require('body-parser').urlencoded({ extended: true }));
app.use(require('express-session')({
secret: 'BAH',
resave: true,
saveUninitialized: true
}));
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});
passport.use('local-employee', new LocalStrategy(
function (username, password, done) {
console.log(username, password);
// get user from employee source
user = {username, password, type: 'employee'};
return done(null, user);
}
));
passport.use('local-customer', new LocalStrategy(
function (username, password, done) {
console.log(username, password);
// get user from customer source
user = {username, password, type: 'customer'};
return done(null, user);
}
));
app.use(passport.initialize());
app.use(passport.session());
app.post('/employee/login',
passport.authenticate('local-employee'),
function (req, res) {
res.json(req.user)
});
app.post('/customer/login',
passport.authenticate('local-customer'),
function (req, res) {
res.json(req.user)
});
app.listen(3000)
{
"name": "passport-local",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"cookie-parser": "^1.4.5",
"express": "^4.17.1",
"express-session": "^1.17.2",
"passport": "^0.4.1",
"passport-local": "^1.0.0"
}
}