-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpassportconfig.js
40 lines (33 loc) · 920 Bytes
/
passportconfig.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const LocalStrategy=require('passport-local').Strategy;
const Login=require('./db/models/login')
const initializingPassport=(passport)=>{
passport.use(new LocalStrategy( async(username,password,done)=>{
try{
const user=await Login.findOne({username});
if(!user) return done(null,false);
if(user.password!==password) return done(null,false);
// console.log(user)
return done(null,user);
}
catch(E){
return done(E,false)
}
}))
passport.serializeUser((user,done)=>{
done(null,user.id);
})
passport.deserializeUser(async (id,done)=>{
try{
const user =await Login.findById(id);
done(null,user);
}
catch(e){
done(e,false);
}
});
}
const isAuth=(req,res,next)=>{
if(req.user) return next();
res.redirect('/login');
}
module.exports={initializingPassport,isAuth};