首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Passport.js会话混淆

Passport.js会话混淆
EN

Stack Overflow用户
提问于 2014-06-24 00:09:41
回答 1查看 7.9K关注 0票数 7

我正在学习节点和表示。我正在尝试构建一个非常基本的应用程序,它只允许用户使用json登录。然后将保持会话,直到他们注销为止。对asp.net来说,这是一个麻烦,你只需在配置中设置它,然后调用.

代码语言:javascript
复制
Auth.Login(username,pasword)

当他们登出时,你只需:

代码语言:javascript
复制
Auth.logout()

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

代码语言:javascript
复制
Auth.IsLoggedIn()

或者这样的代码。看来节点的Passport并不是那么简单。我花了一整晚做这个工作..。

代码语言:javascript
复制
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时,没有会话持久化。我连一个断点都停不下来.

代码语言:javascript
复制
passport.use(new LocalStrategy(
    function(username, password, done) {

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

    }
));

我是不是找错了解决办法?我应该使用基本的中间件功能来滚动自己的数据吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-24 10:19:26

看看本教程。这真的很棒,对我有很大帮助。

这是我的repo,它通过mongodb实现了通过mongodb存储的用户的护照身份验证,并对密码进行了散列。克隆它或者只是检查它,它应该会有帮助的。基座

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24376484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档