编写API优先应用程序,需要身份验证模型和工作流程

时间:2014-03-24 05:14:56

标签: node.js api session express

所以我正在制作一款移动应用,它将使用我写的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是糟糕的设计。我该如何改变?对于这种模型,什么是好的,而不是复杂的设计?鉴于我的用例,我该怎么做?任何代码示例?

1 个答案:

答案 0 :(得分:0)

OAuth可能是你最好的选择。它looks to be straightforward to implement with Passport

另一种方法是在登录时生成随机令牌字符串,将其存储在具有到期时间的数据库中,并要求令牌包含在每个请求中以验证它。