如何生成客户端密钥&在我的网站上注册申请的秘密&如何使用OAuth实现提供程序

时间:2011-10-20 07:41:30

标签: ruby-on-rails ruby-on-rails-3 api oauth oauth-2.0

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

  1. How should I generate & assign app key & app secret to an application
  2. I know that for secure API access I have to use OAuth.
  3. I have read following links & tutorials but I am not getting it how to implement it.
  4. 我尝试在here运行演示,但只有部分正在运行,但我无法运行客户端部分。

    请详细指导我学习这些东西。在此先感谢...!

1 个答案:

答案 0 :(得分:3)

  

自问这个问题以来已经有一段时间了,自那以后创建了很多很好的资源,我将在下面总结并链接到这些资源。

添加OAuth 2提供程序功能

Doorkeeper gem允许您实施OAuth提供程序功能,并且well documented并且维护得很好。它整合了with Devise,并且有example applications可供学习。

在客户端(用于测试集成,或者如果您想为外部开发人员提供Ruby客户端),您可以使用OmniAuth,并且Doorkeeper文档将引导您完成{{{ 3}}

您可能不需要OAuth吗?

根据您正在构建的API类型,您可能会发现OAuth过度。 OAuth在您是内容提供商的情况下非常有用,开发人员是第三方,希望代表用户访问,但不需要了解他们的信息密码。

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

有关has_secure_tokenhere的详细信息。