ReST API:我应该将访问令牌与我的数据库中的用户

时间:2016-09-20 20:40:19

标签: node.js security api-design

我正在nodeJS服务器上构建安全的ReST API,以便我的Android应用程序可以访问我网站上的数据。在阅读其他一些帖子的基础上,我逐渐明白我应该使用访问令牌。所以我的想法是做以下事情:

1)当用户登录Android应用时,应用会向我网站上的/api/login发送请求,提供用户名和密码(这当然需要通过SSL进行以防止窃听)。

2)我的服务器验证用户名+密码是否匹配,如果是,则使用访问令牌进行响应。

3)应用程序使用此访问令牌向我的API发出所有后续请求。

我的问题是我应该将访问令牌存储在我服务器上的数据库中吗?具体来说,我应该存储访问令牌与该特定用户相关联的事实吗?我看过的大多数教程都没有这样做,但是如果我不这样做,那么用这个访问令牌阻止用户修改或查看另一个用户的数据是什么?我不需要将访问令牌与我的数据库中的用户配对吗?

3 个答案:

答案 0 :(得分:2)

尝试使用这个库,我做了相同类型的项目,这个life saver是我的解决方案。

答案 1 :(得分:0)

如果您需要构建安全的API,那么事情就会变得复杂一些。您需要使用私钥库对访问令牌进行签名。

使用像Auth0这样的身份验证服务是否可以?他们正在为您生成JWT令牌,您只需要验证此令牌。 API完全是无状态的。你可以在他们的网站上找到几乎所有编程语言的库。

答案 2 :(得分:0)

您想要做的就是HTTP会话。

所以,我认为你可以使用HTTP Session功能它已经在WAS框架中实现,如Django,Spring等。如果NodeJS提供会话功能,只需在框架中使用会话功能。如果没有,请查找HTTP会话库。也许你可以找到许多处理会话实现的库。