我正在尝试使用护照js进行身份验证,如果身份验证成功,则重定向到主页,但无法重定向
我试图检查passport.authentication调用是否起作用。但是,是的,如果身份验证失败,它可以处理该怎么办,但是如果身份验证是真实的,它就不能处理。
第一个登录表单提交并形成action =“ / users / create-session” 。 。
//这是动作控制器页面...
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;
。 。 。 。 。 。 //usersController.createSession页面 。
module.exports.createSession=function(req,res){
return res.redirect('/');
}
预计登录后如果密码正确,应将其重定向到“ locolhost:8000 /”,但转盘仍保持打开状态,并且有时它说页面无法正常工作,本地主机未在此处发送任何数据输入代码>
答案 0 :(得分:0)
在代码中 //使用护照进行身份验证
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
.
.
.
})
}
));