Ruby on Rails 应用程序的 OpenID 支持

Posted

技术标签:

【中文标题】Ruby on Rails 应用程序的 OpenID 支持【英文标题】:OpenID support for Ruby on Rails application 【发布时间】:2010-09-06 00:13:23 【问题描述】:

在 Ruby on Rails 应用程序中启用 OpenID 登录的最新技术是什么?这是一个社区 wiki,提供此问题的最新答案。

授权逻辑

***的身份验证解决方案似乎是Authlogic。它支持带有Authlogic OpenID plugin 的OpenID。它支持 Rails 4 和 3。Rails 2 在 rails2 分支中得到支持。

您可能想观看"OpenID with Authlogic" railscast(和"Authlogic" railscast)。

有一个名为Authlogic OpenID Selector Example的示例应用程序。

设计

Devise 是灵活的 Rails 身份验证框架。它支持带有devise_openid_authenticatable的OpenID。

restful_authentication

另一个选择的身份验证库是restful_authentication Rails 插件。好像还需要安装open_id_authentication插件。

您可能想观看(旧,大约 2007 年)"OpenID Authentication" railscast。

Ruby OpenID

对 OpenID 协议的原始支持由 Ruby OpenID 库处理。

【问题讨论】:

Authlogic 仍然是打开的号码选择吗?我听说过很多关于设计的事情。 【参考方案1】:

我所知道的支持 OpenID Connect(最新版本)的唯一 gem 是:

https://github.com/nov/openid_connect

但是,它绝对没有文档。 :(

【讨论】:

【参考方案2】:

Bort 现在除了 restful_authentication 之外还包含 OpenID。

【讨论】:

【参考方案3】:

我发现使用 BinaryLogic 的 Authlogic gem 非常简单易用。请参阅Authlogic 及其OpenID plugin。

您可以下载example application 或try it!

【讨论】:

【参考方案4】:

奇怪的是,自 2007 年以来,这个主题似乎并没有受到 Rails 社区的太多关注。

最新的 Bort 主干似乎不适用于 Rails 2.3.x,所以我分叉了它并让它工作。

我还添加了一些我个人使用的东西——比如 yui reset/base、jquery 等。

fork 仍在进行中,但我希望为 restful auth、google auth、facebook connect、twitter 等提供广泛的、经过测试的身份验证支持。

http://github.com/lukebayes/bort

【讨论】:

您是否尝试向上游发出拉取请求?您的 Bort 是否适用于 3.0?谢谢,【参考方案5】:

最终的资源应该是rails wiki,虽然我使用应该是明智的,因为在 OpenID 支持方面情况变化很快。

Ryan Bates 的Railscast on Openid 是我发现的最好的追随者。尽管它是使用 Rails 1.2.3 录制的,但我已经能够成功地使用 Rails 2.1.0 完成教程。唯一需要注意的是:

gem install ruby-openid

我安装的是 2.1.2,而不是 railscast 中使用的 1.1.4。

使用的 OpenID 插件是 open_id_authentication,我结合 git://github.com/technoweenie/restful-authentication.git 的 restful_authentication 对其进行了测试

注意:我随后在blog post 中写了这篇文章。

【讨论】:

很遗憾,此评论已过时。我已经接受了自己的答案,并将其设为社区 wiki。 另外,Rails wiki 似乎完全崩溃了。【参考方案6】:

关注Bort。它是一个基本的 rails 应用程序,其中已经设置了 restful_authentication 。这样做的人正计划添加 OpenID。

【讨论】:

不幸的是,Bort 似乎已经过时了。【参考方案7】:

我所做的是使用 restful-authentication,然后将 open_id_authentication 插件混合到您的应用程序中。在测试应用上设置 open_id_authentication 插件也可能会有所帮助,因此您可以确定需要对 users 表进行的更改。

【讨论】:

【参考方案8】:

查看此Railscast on OpenId 了解更多信息。我不确定它是否/如何与 restful_authentication 一起工作,但可能是一个很好的资源。 (我还没看)

【讨论】:

预言:您的评论将被否决,因为任何人都可以建议来自 Google 的随机搜索结果;)

以上是关于Ruby on Rails 应用程序的 OpenID 支持的主要内容,如果未能解决你的问题,请参考以下文章

分析 ruby​​ / ruby​​ on rails 应用程序

Ruby on Rails Mountable vs. Full Engine

Ruby On Rails视频教程

Ruby on Rails Cron 作业示例

ruby on rails升级资产预编译失败

ruby/ruby on rails 内存泄漏检测