我正在学习节点和表达。我正在尝试构建一个非常基本的应用程序,只需让用户使用json登录。然后将保持会话直到他们退出。使用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
网址时没有会话持续存在。我甚至无法在战略中找到一个断点......
passport.use(new LocalStrategy(
function(username, password, done) {
console.log('ggg');
return done(null, {username:'ss',password:'sffds'});
}
));
我是否在寻找错误的解决方案?我应该滚动自己的身份验证还是具有基本中间件功能的东西?
答案 0 :(得分:3)
结帐this tutorial。它非常棒,对我帮助很大。
这是我的回购,它通过mongoose对存储在mongodb中的用户实施了护照验证,并对密码进行了哈希处理。克隆它或只是检查它,它应该有所帮助。 https://github.com/thyforhtian/auth_base