【发布时间】:2011-06-08 00:56:16
【问题描述】:
我想为我的网络应用提供经过身份验证的 API 访问。这种服务的消费者通常是其他网站/服务。
验证这些用户的最佳方法是什么? OAuth、openID、http 身份验证?
【问题讨论】:
标签: ruby-on-rails api authentication
我想为我的网络应用提供经过身份验证的 API 访问。这种服务的消费者通常是其他网站/服务。
验证这些用户的最佳方法是什么? OAuth、openID、http 身份验证?
【问题讨论】:
标签: ruby-on-rails api authentication
在我们的工作中,“哪个最好?”的答案是“视情况而定”。 :)
HTTP 身份验证 - 如果您已经让客户端通过 ID 和密码登录到您的服务,您可能只需要做最少的工作就可以很好地使用您的 API .如果您的 API 基本上是单一用途的,并且不需要详细的权限,那么您可以在此处获得相当快的工作。
API 令牌 - 如果您希望客户能够在不提供密码的情况下轻松进行身份验证(想想那些构建与您的 API 交互的服务的公司;也许 IT 部门不希望开发团队知道密码;等等),然后将 GitHub 上的随机 API 令牌附加到用户帐户可能是最快的方法。作为奖励,您可以提供一种无需更改帐户密码即可重新生成 API 令牌的方法。
OAuth - 如果您拥有多个权限或想要更细粒度地控制客户端访问您的 API 的方式和时间,OAuth 是一个不错的选择(OAuth2 更容易使用,IMO ,并支持multiple methods of obtaining an access token)。此外,许多语言都有库、gem 等,可以让它们简化 OAuth 工作流程。
【讨论】:
我会说“最佳”方法是 oAuth。它更灵活,并且可以独立于应用程序以供进一步使用。 我正在使用 oAuth 对我的客户端(应用程序)进行身份验证。
;)
【讨论】: