如何为我的网站上的应用程序注册生成客户端密钥和密码以及如何使用OAuth实现提供程序

man*_*ale 6 api ruby-on-rails oauth oauth-2.0 ruby-on-rails-3

嗨,我有一个rails应用程序,我想为它构建一个API.到目前为止,我从未参与过API构建.所以请告诉我应该从哪里开始构建API.我希望将其公开,以便开发人员可以使用我的API构建应用程序.我脑子里有两个问题

  1. 我应该如何为应用程序生成和分配应用程序密钥和应用程序密钥
  2. 我知道,对于安全的API访问,我必须使用OAuth.
  3. 我已经阅读了以下链接和教程,但我没有得到它如何实现它.

我试图在这里运行demo 但只有部分工作,但我无法运行客户端部分.

请详细指导我学习这些东西.提前致谢...!

gwc*_*des 3

自从提出这个问题以来已经有一段时间了,此后创建了许多很棒的资源,我将对其进行总结并链接到下面。

添加 OAuth 2 提供程序功能

Doorkeeper gem允许您实现 OAuth 提供程序功能,并且有良好的文档记录和良好的维护。它与 Devise集成良好,并且有示例应用程序可供学习。

在客户端(用于测试集成,或者如果您想为外部开发人员提供 Ruby 客户端),您可以使用OmniAuth ,并且 Doorkeeper 文档将引导您完成创建自定义策略的过程。

您可能不需要 OAuth?

根据您正在构建的 API 类型,您可能会发现 OAuth 太过分了。如果您是内容提供商,而开发人员是想要代表用户访问信息但不需要知道其密码的第三方,则 OAuth 非常有用。

如果您的用例更简单(例如,您可以直接向 API 用户提供秘密令牌和密钥),那么生成和检查访问令牌可能就足够了。在这种情况下,您生成一个密钥(使用SecureRandom.urlsafe_base64, 或has_secure_token如果您使用的是 Rails 5)并存储它。API 用户在每个请求上提供此令牌以便进行身份验证,如果原始令牌遭到破坏,您可以重新生成令牌。

更多详细信息请参见此处此处