我刚刚发现了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
,但不是存储会话,而是发送回令牌以监控用户是否具有访问权限。
问题:如何禁用护照会话? (我知道如何发送令牌并听取它)。
答案 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 });
});