所以我正在制作一款移动应用,它将使用我写的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是糟糕的设计。我该如何改变?对于这种模型,什么是好的,而不是复杂的设计?鉴于我的用例,我该怎么做?任何代码示例?
答案 0 :(得分:0)
OAuth可能是你最好的选择。它looks to be straightforward to implement with Passport。
另一种方法是在登录时生成随机令牌字符串,将其存储在具有到期时间的数据库中,并要求令牌包含在每个请求中以验证它。