因此,我正在制作一个移动应用程序,它将使用我编写的API。该API将仅供移动应用程序使用,而不会被其他任何人使用(也许我会允许其他人使用有限的方法集?)。
API本身工作,除了我关心的:-安全-它是无状态的
我使用passport.js进行用户身份验证,并使用RedisStore存储用户会话:
app.use(express.cookieParser());
app.use(express.session({
secret: secrets.sessionSecret,
store: new RedisStore({ host: 'localhost', port: 6379 })
}));对于需要经过身份验证的用户的api调用,我只检查req.isAuthenticated()方法是否为真。相当标准。
然而,我的阅读和研究表明,API在会话上的回复是糟糕的设计。我该如何改变这一点?对于这种模型,什么是一个好的,不复杂的设计?考虑到我的用例,我应该怎么做?有代码样本吗?
发布于 2014-03-24 15:26:45
OAuth可能是您最好的选择。It looks to be straightforward to implement with Passport。
另一种方法是在登录时生成随机令牌字符串,将其存储在数据库中并指定过期时间,然后要求在每个请求中都包含令牌,以便对其进行验证。
https://stackoverflow.com/questions/22601565
复制相似问题