gpt4 book ai didi

javascript - req.isAuthenticated 总是返回 false ( react 前端)

转载 作者:行者123 更新时间:2023-12-02 21:38:55 26 4
gpt4 key购买 nike

我使用passport js进行身份验证,并且passport没有将用户对象放入req对象(req.user返回未定义)。

登录路径:- <​​/p>

Router.post("/login",ensurelog,async (req, res, next) => {
await passport.authenticate("local", { failWithError: true }, function(err,user,info
) {
if (err) {
console.log("1", err);
}
else if (info)
{
res.json({info}).end();
}
else if (user) {
res.json({user}).end();
}
})(req, res, next);
});

当react客户端收到用户对象时,页面使用this.props.history.push()函数重定向到不同的组件,该组件使用react-router-dom中的BrowserRouter进行路由
确保日志功能:-

function(req,res,next){
//console.log("reached ensurelog")
console.log(req.user) //always returns undefined
console.log(req.isAuthenticated()) //always returns false
if(req.isAuthenticated()){

res.json({
message:'already loged in'
}).end();
}
next();

}

最佳答案

我刚刚快速浏览了 API documentation 。看起来您的 post 参数有点困惑。你能试试这个吗:

var ensurelog = function(req,res,next) {
passport.authenticate('local', function(err, user, info) {
console.log(user);
})(req, res, next);
};


Router.post("/login", ensurelog)

还值得注意的是,该 API 似乎使用回调函数(而不是 Promises)来处理异步请求。

关于javascript - req.isAuthenticated 总是返回 false ( react 前端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60418608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com