ruby-on-rails - 授予 API 访问 Rails 应用程序的最佳身份验证方法

标签 ruby-on-rails api authentication

我想为我的 Web 应用程序提供经过身份验证的 API 访问。这种服务的消费者通常是其他网站/服务。

验证这些用户的最佳方法是什么? OAuth、openID、http 认证?

最佳答案

就像我们的工作一样,“哪个最好?”的答案是什么?是“视情况而定”。 :)

  • HTTP 身份验证 - 如果您已经让客户通过 ID 和密码登录到您的服务,您可能只需要做最少的工作就可以让它与您的 API 很好地配合使用。如果您的 API 基本上是单一用途的并且不需要详细的权限,那么您可以在此处快速运行某些东西。
  • API token - 如果您希望客户能够在不提供密码的情况下轻松进行身份验证(想想那些构建与您的 API 交互的服务的公司;也许 IT 部门不希望开发团队知道密码;等等),那么将随机 API token à la GitHub 附加到用户帐户可能是最快的方法。作为奖励,您可以提供一种无需更改帐户密码即可重新生成 API token 的方法。
  • OAuth - 如果您有多个权限或想要更精细地控制客户端访问您的 API 的方式和时间,OAuth 是一个不错的选择(OAuth2 更容易使用,IMO,并支持 multiple methods of obtaining an access token)。此外,许多语言都有库、gem 等,可以让它们简化 OAuth 工作流程。
  • 关于ruby-on-rails - 授予 API 访问 Rails 应用程序的最佳身份验证方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672582/

    相关文章:

    c# - API 方法名称的常量类

    php - Laravel 5.0::更改密码后无法登录

    git - 权限被拒绝(公钥)。致命的 : Could not read from remote repository

    ruby-on-rails - 如何在 Rails 4 中搜索关联

    mysql - 将 sql 查询转换为 Activerecord 查询 Rails 4

    ruby-on-rails - 将对象放入 aws S3 ruby​​ 中的特定文件夹

    facebook - 用户的 Facebook Messenger PSID PageScope 是否恒定

    ruby-on-rails - 与最新的 Google map 、Yahoo map 、Bing API 兼容的 Ruby 地理编码库

    api - 第三方权限 用户名 Paypal API Magento

    Python urllib2 登录 minecraft.net