Node.js 使用Express在Passport js本地策略中重定向失败
我是新来的。由于某种原因,我的登录重定向总是失败,并以failureRedirect结束。下面是代码片段。 当我单击Login时,作为响应,它会将我重定向回登录页面,因为failureRedirect设置为/Login。没有其他错误消息。 有什么方法可以调试passport js或任何其他建议来解决这个问题吗Node.js 使用Express在Passport js本地策略中重定向失败,node.js,express,passport.js,Node.js,Express,Passport.js,我是新来的。由于某种原因,我的登录重定向总是失败,并以failureRedirect结束。下面是代码片段。 当我单击Login时,作为响应,它会将我重定向回登录页面,因为failureRedirect设置为/Login。没有其他错误消息。 有什么方法可以调试passport js或任何其他建议来解决这个问题吗 $(“#登录按钮”)。单击(函数(){ var username=$(“#登录电子邮件”).val(); var password=$(“#登录密码”).val(); var form=n
$(“#登录按钮”)。单击(函数(){
var username=$(“#登录电子邮件”).val();
var password=$(“#登录密码”).val();
var form=new FormData();
表单。附加(“用户名”,用户名);
表单。追加(“密码”,密码);
//警报('email/pass:'+username+“,“+password”);
变量设置={
“异步”:true,
“跨域”:正确,
“url”:“/登录”,
“方法”:“发布”,
“标题”:{
“缓存控制”:“无缓存”,
“邮递员代币”:“ab1b08a7-1a77-97e9-1039-92479d10b68b”
},
“processData”:false,
“contentType”:false,
“mimeType”:“多部分/表单数据”,
“数据”:{“用户名”:用户名,“密码”:密码}
}
$.ajax(设置).done(函数(响应){
控制台日志(响应);
});
});
路线:
app.post('/login',passport.authenticate('local-login',
{ successRedirect : '/dashboard',
failureRedirect : '/login'
}));
Passport.js
passport.use(
'local-login',
new LocalStrategy({
usernameField: 'username',
passwordField: 'password',
passReqToCallback: true
},
function(req, username, password, done) {
connection.query("SELECT * FROM user WHERE user_name = ?",[username], function(err, rows){
if (err)
return done(err);
if (!rows.length) {
return done(null, false});
}
// if the user is found but the password is wrong
if (!bcrypt.compareSync(password, rows[0].password))
return done(null, false);
// all is well, return successful user
return done(null, rows[0]);
});
})
);
我认为您可能正在使用这段代码进行sql注入。除非您的sql模块监视sql注入。如果username中有一个sql语句呢?您是否也可以显示您的主express配置代码(您在哪里配置所有中间件等)?我无法找出问题所在。所以我一步一步地遵循passport js教程并重新创建了应用程序。现在一切都好了。谢谢你们的回复。