Node.js Passport.js会话混淆
我正在学习node和express。我正在尝试构建一个非常基本的应用程序,它只允许用户使用json登录。然后将保持会话,直到他们注销。在asp.net中,这是一个小问题,您只需在配置中设置它并调用Node.js Passport.js会话混淆,node.js,express,passport.js,Node.js,Express,Passport.js,我正在学习node和express。我正在尝试构建一个非常基本的应用程序,它只允许用户使用json登录。然后将保持会话,直到他们注销。在asp.net中,这是一个小问题,您只需在配置中设置它并调用 Auth.Login(username,pasword) 当他们注销时,您只需执行以下操作: Auth.logout() 如果您需要检查他们是否已登录,只需执行以下操作: Auth.IsLoggedIn() 或是类似的代码。看来节点的Passport并不是那么简单。我花了一整晚的时间让它工作 a
Auth.Login(username,pasword)
当他们注销时,您只需执行以下操作:
Auth.logout()
如果您需要检查他们是否已登录,只需执行以下操作:
Auth.IsLoggedIn()
或是类似的代码。看来节点的Passport并不是那么简单。我花了一整晚的时间让它工作
app.post('/authentication/login', function handleLocalAuthentication(req, res, next) {
passport.authenticate('local', function(err, user, info) {
// Manually establish the session...
req.login({username:'me@me.com',password:'password'}, function(err) {
if (err) return next(err);
return res.json({
message: 'user authenticated'
});
});
})(req, res, next);
});
app.get('/authentication/isauthenticated',function(req,res){
console.log(req.isAuthenticated());
})
passport.use(new LocalStrategy(
function(username, password, done) {
return done(null, {username:'ss',password:'sffds'});
}
));
因此,现在我没有cookie,当我登录并点击/authentication/isAuthenticated
url时,没有会话保持。我甚至无法在策略中找到断点来停止
passport.use(new LocalStrategy(
function(username, password, done) {
console.log('ggg');
return done(null, {username:'ss',password:'sffds'});
}
));
我看到的是错误的解决方案吗?我应该使用我自己的auth还是带有基本中间件功能的东西?请检查。这真的很棒,对我帮助很大
这是我的repo,它通过mongoose对存储在mongodb中的用户实施了passport身份验证,并对密码进行了哈希处理。克隆它或只是检查它,它应该会有所帮助。
.谢谢这真的帮了我的忙。我很高兴它帮了我。Thanks@thyforhtian“本教程”的链接似乎在passportjs中断开。使用会话或不使用会话是有意义的,这取决于您使用的策略。例如,在构建无状态API时,人们更喜欢基本策略而不是本地策略。还有@perlamq,上面提到了“本教程”的链接,我相信:教程已经不存在了。链接不工作@thyforhtian请更新答案