在nodejs Passport.js中禁用会话

时间:2015-07-18 00:15:53

标签: javascript node.js authentication express passport.js

我刚刚发现了Tokens for authentication,它允许会话/无状态服务器并以MEAN开始。看起来很神奇。

现在,我正在使用Passport.js对用户进行身份验证(通过电子邮件,Facebook,Google,...),这些信息将信息存储到服务器会话中,就像所有教程所说的那样:

 // required for passport
    app.use(express.session({
        secret : 'superscret',
        expires: new Date(+new Date + settings.session.sessionTimeout),
        store: new MongoStore({})
    })); // session secret
    app.use(passport.initialize());
    app.use(passport.session({}));

是否仍然可以使用Passport.js,但不是存储会话,而是发送回令牌以监控用户是否具有访问权限。

问题:如何禁用护照会话? (我知道如何发送令牌并听取它)。

2 个答案:

答案 0 :(得分:3)

我建议在AngularJS中使用satellizer事实上的标准库进行基于令牌的身份验证。它仅实现基于令牌的身份验证,并且更容易为您的目的而工作。它还有很好的服务器示例,包括Node.js server example

答案 1 :(得分:0)

passportjs支持禁用会话。文档passport

验证成功后,Passport将建立持久登录会话。这对于用户通过浏览器访问Web应用程序的常见场景非常有用。但是,在某些情况下,不需要会话支持。例如,API服务器通常需要为每个请求提供凭据。在这种情况下,可以通过设置session option to false来安全地禁用会话支持。

app.get('/api/users/me',
  passport.authenticate('basic', { session: false }),
  function(req, res) {
    res.json({ id: req.user.id, username: req.user.username });
  });