gpt4 book ai didi

node.js - Passport.js session 困惑

转载 作者:搜寻专家 更新时间:2023-10-31 22:24:59 25 4
gpt4 key购买 nike

我正在学习 Node 和表达。我正在尝试构建一个非常基本的应用程序,它只会让用户使用 json 登录。然后将保持 session 直到他们注销。对于 asp.net,这是轻而易举的事,您只需在配置中设置它并调用...

Auth.Login(username,pasword)

当他们注销时,您只需执行以下操作:

Auth.logout()

如果您需要检查他们是否已登录,您只需执行以下操作:

Auth.IsLoggedIn()

或实现该效果的代码。好吧,似乎 Passport for node 并不是那么简单。我花了一整夜的时间来完成这项工作......

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 时没有 session 持续存在。我什至无法在策略中获得断点停止...

passport.use(new LocalStrategy(
function(username, password, done) {

console.log('ggg');
return done(null, {username:'ss',password:'sffds'});

}
));

我是否为此寻找了错误的解决方案?我应该滚动自己的身份验证还是具有基本中间件功能的东西?

最佳答案

查看 this tutorial .这真的很棒,对我帮助很大。

这是我的存储库,它通过 mongoose 和散列密码对存储在 mongodb 中的用户实现了 Passport 身份验证。克隆它或只是检查它,它应该有所帮助。 https://github.com/thyforhtian/auth_base .

关于node.js - Passport.js session 困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24376484/

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