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

标签 ios node.js mongodb rest mobile

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

最佳答案

使用 OAuth 2.0,您将拥有可扩展的标准和基于 token 的身份验证,使用户能够撤销身份验证票证,例如如果他们的手机被盗。

OAuth 2.0 支持各种授权类型。您从 facebook 和 twitter 登录的那些可以概括为“三足 oauth”,但对于两足 OAuth 也有两种授权类型,尤其是 resource owner password credentials grant。 (页面末尾的第 4.3 节)将简单地交换用户名和密码以获取身份验证 token 。如果您不想,则无需实现 3-legged oauth。

对于大多数用例,我建议使用数据库存储的 token 而不是基于加密的自验证 token 。撤销个别授权或特定客户端应用程序的所有授权的可能性在实践中非常有用。它还大大缩短了 token 并降低了由于实现缺陷而导致灾难性安全漏洞的风险。确保 token 本身是加密强随机的,并在实际 token 值周围使用一个简单的加密包装器,以实现对(严重)伪造 token 的廉价识别。

关于ios - Node.JS RESTful API 的最佳身份验证方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28646895/

相关文章:

ios - 将参数从 UITableViewCell 传递到 UITableView(动态内容)

ios - Appium - 开发者证书问题

c# - 如何在xamarin中获取当前的gps坐标

mongodb - 在 MongoDB 中,最大化每日日志文档写入性能的策略

node.js mongodb仅更新数组中第一个找到的子文档

ios - iOS从我在引导访问中运行的应用运行特定安装的游戏

javascript - 如何通过 NodeJS 将文件上传到 S3 并在浏览器中跟踪进度?

Node.js : need help to create command line interface

javascript - 如何使用 NodeJS 使我的服务器实时运行并接收消息?

javascript - GraphQL 不允许在 NodeJS 中插入数组对象