Node.JS RESTful API的最佳身份验证方法

问题描述 投票:3回答:2

我想构建一个共享同一数据库的Web应用程序和移动应用程序(用于iOS)。 目前我对使用RESTful API并让两个应用程序(Web和iOS)与API通信以访问数据感到兴趣。 我的问题是我应该使用的身份验证方法。 我一直在研究OAuth2.0,但这不是我想要的东西,因为我不希望用户必须授权连接,因为当你使用facebook或google +登录某个地方时会发生这种情况。 我只想用用户名和密码登录,然后保持登录状态。这适用于两个应用程序(Web和iOS)。 我正在使用Node.JS和MongoDB来构建API。 我正在尝试以“正确的方式”做事,因为这被认为是我主人的最后一个项目。 你们能告诉我如何实现这一目标吗?

ios node.js mongodb rest mobile
2个回答
5
投票

使用OAuth 2.0,您可以使用可扩展的标准和基于令牌的身份验证,使用户可以撤消身份验证票证,例如,如果他们的手机被盗。

OAuth 2.0支持各种授权类型。 那些来自facebook和twitter登录的人可以概括为“3-legged oauth”,但是对于2-legged OAuth,还有两种授权类型,特别是资源所有者密码凭证授权 (页面末尾的第4.3节)只需交换身份验证令牌的用户名和密码即可。 如果你不愿意,没有必要实施三条腿的oauth。

对于大多数用例,我建议在基于加密的自验证令牌上使用数据库存储的令牌。 撤销个人拨款或特定客户申请的所有拨款的可能性在实践中非常有用。 它还可以缩短令牌数量,并且由于实施中的缺陷而降低了灾难性安全泄漏的风险。 确保令牌本身是加密随机的,并使用围绕实际令牌值的简单加密包装来实现(严重)伪造令牌的廉价识别。


0
投票

Passport这样的东西(不,不是威士忌,而是中间件)可能是一件好事

它允许以简单透明的方式在众多不同的身份验证方法中进行选择

© www.soinside.com 2019 - 2024. All rights reserved.