>我正在尝试使用护照js进行身份验证,如果身份验证成功,则重定向到主页,但无法重定向
我试图检查护照身份验证调用是否有效。但是,是的,它可以处理身份验证失败时该怎么做,但如果它是真的,它就无法处理该怎么做。
首次提交登录表单和表单操作="/用户/创建会话"...
这是动作控制器页面...
const express=require('express');
const router=express.Router();
const passport=require('passport');
router.post('/create-session',passport.authenticate(
'local',
{failureRedirect:'/users/signin'},
),usersController.createSession);
...护照本地页面....
const passport=require('passport');
const LocalStrategy=require('passport-local').Strategy;
const User=require('../models/user');
使用护照进行身份验证
passport.use(new LocalStrategy({
usernameField:'email'
},
function(email,password,done){
//find a user and establish the identity
User.findOne({email:email},function(err,user){
if(err){
console.log('Error in finding user --> Passport');
return done(err);
}
if(!user||user.password!=password){
console.log('Invalid Username/Password');
return done(null,false);
}
return(null,user);
})
}
));
序列化用户以决定将哪个密钥保留在 cookie 中
passport.serializeUser(function(user,done){
done(null,user.id);
})
从 cookie 中的密钥反序列化用户
passport.deserializeUser(function(id,done){
User.findById(id,function(err,user){
if(err){
console.log('Error in finding User --> Passport');
return done(err);
}
return done(null,user);
});
})
module.exports=passport;
......用户控制器.创建会话页面..
module.exports.createSession=function(req,res){
return res.redirect('/');
}
预计登录后,如果密码正确,它应该重定向到"locolhost:8000/",但轮子一直打开,有时它说页面不起作用本地主机没有发送任何数据'在此处输入代码
in code使用护照进行身份验证
passport.use(new LocalStrategy({
usernameField:'email'
},
function(email,password,done){
//find a user and establish the identity
User.findOne({email:email},function(err,user){
if(err){
console.log('Error in finding user --> Passport');
return done(err);
}
if(!user||user.password!=password){
console.log('Invalid Username/Password');
return done(null,false);
}
return(null,user);
.
.
-----------------------------------------------
//instead return(null,user); .... return done(null,user); must be there
.
.
.
})
}
));