Rails 3. 如何构建一个 oauth2 提供者

42

我正在使用Ruby on Rails 3开发一个API,希望使用OAuth2来保护它。

换句话说,我需要创建一个OAuth提供程序。是否有适用于Rails 3的gem或关于此问题的教程?

更新

我知道Rails是基于REST的,所以我觉得没有关于如何创建公共API并保护其安全的教程非常奇怪。有人知道任何好的教程吗?最好包含OAuth。

感谢所有帮助!

7个回答

31

25

我昨天开源了一个OAuth2服务器实现

它有很好的文档,并且有一个控制访问权限的仪表板。现在我正在寻找想要从中构建引擎或在Rack上构建一些酷炫东西的人。这就是为什么它是开源的。


谢谢,我希望社区能成为这个项目变得越来越好的一部分。 - Andrea Reginato
非常感谢您开源。我从中学到了很多。 - Minqi Pan
2
目前,Oauth2服务器实现已被标记为废弃,并建议转向doorkeeperopro - jonhattan

24

谢谢!这个有任何文档可供参考吗?https://github.com/freerange/oauth2-provider - Jonathan Clark
那个版本是基于mongoid的 :) 所以除非你在使用它,否则我建议使用其他版本。个人只尝试过从头开始构建提供程序。 - raidfive
我正在使用SQL。你知道在Rails 3中构建提供程序的好指南吗? - Jonathan Clark
我还没有找到任何关于ActiveRecord的指南。OAuth2规范仍在开发中。也许你可以使用OAuth 1.0?它已经存在很长时间了,而且库更加成熟。 - raidfive
当然可以。你有什么关于Oauth1的库或宝石链接吗? - Jonathan Clark
同一来源,只需在 GitHub 上搜索“oauth”或“oauth提供程序”。规范的宝石位于https://github.com/oauth/oauth-ruby。提供者/消费者插件位于https://github.com/pelle/oauth-plugin。 - raidfive

9

这看起来非常不错。我尝试了一下,但是我无法弄清楚如何创建一个客户端。 - Jonathan Clark
这是一个使用Devise插件的示例客户端(Sinatra)和服务器(Rails):https://github.com/aganov/devise-oauth2-provider-client - kiwnix
从他们当前的README.md文件中可以看到:"此宝石不再维护,被视为已弃用。" - gabe

5

2

我也想要实现一个OAuth2提供者!我目前正在尝试使用这个https://github.com/assaf/rack-oauth2-server,它似乎是一个功能齐全的OAuth2服务器,但仅支持MongoDB,不过实现对其他DBMS的支持似乎很简单。此外,我还在查看这里发布的其他选项,有很多有希望的东西!


我用它来实现了一个oauth2安全的API,虽然它能够工作,但是我花了几天时间才理解它。不过作者非常乐于助人。 - Martin Wawrusch

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接