Ruby on Rails认证的最佳解决方案

Ruby on Rails认证的最佳解决方案

Best Solution For Authentication in Ruby on Rails

我正在寻找可以在RoR应用程序中使用的预构建解决方案。 理想情况下,我正在寻找类似于ASP.NET Forms身份验证的内容,该身份验证提供电子邮件验证,注册控件并允许用户重置其密码。 好的,可以轻松地让我拉出当前登录到该应用程序的用户。

我已经开始研究已经写过的文章,但是我发现它确实令人困惑。 我看过LoginGenerator,RestfulAuthentication,SaltedLoginGenerator,但是似乎没有一个地方提供出色的教程或提供它们的比较。 如果有一个我还没有发现的站点,或者如果有大多数人使用的事实上的标准,我将不胜感激。


AuthLogic似乎是新手,似乎是restful_authentication的下一个发展,更易于使用等

http://github.com/binarylogic/authlogic/tree/master

编辑:既然Rails 3已经发布,Devise似乎是一个新的,新生的孩子

https://github.com/plataformatec/devise
或者我现在已经使用内置于Rails http://railscasts.com/episodes/250-authentication-from-scratch-revised的has_secure_password进行了自己的身份验证

旁注:Ruby Toolbox是一个不错的网站,可用于查找各种类别中的当前最佳解决方案(基于GitHub观察者的数量):

http://ruby-toolbox.com/categories/rails_authentication.html


我真的会推荐Restful身份验证。我认为这实际上是事实上的标准。


对于真正简单的解决方案,请选择"间隙"。

如果您正在寻找更多选择,Devise是一个很好的解决方案。 它使用Warden,它是基于机架的身份验证系统。


我真的很喜欢thinkbot的通关。非常简单,具有一些好的挂钩,并且可以测试。


AuthLogic似乎就是您想要的。它是非常可配置的,尽管它不会为您生成代码,但它非常易于使用。对于电子邮件验证和密码恢复,您可能需要使用:perishable_token列。 AuthLogic会处理它,您只需要在使用它时将其重置。有关如何设置基本应用程序的信息,您可以查看AuthLogic上的Ryan Bates的Railscast,以及"官方"示例应用程序。 AuthLogic的创建者本·约翰逊(Ben Johnson)也写了一篇博客文章,介绍如何RESTful重置密码。

不幸的是,我不能发布多个链接,但是指向railscast的链接,密码重置博客文章和示例应用程序都在README中(请参阅READLogic的AuthLogic存储库)

更新:现在我可以发布更多链接,所以我链接了更多链接。谢谢marinatime同时添加链接


我还想指出一个很好的教程/讨论,以扩展Restful身份验证的核心功能,以防您需要更强大的功能。


请注意,LoginGenerator和SaltedLoginGenerator已由Restful Authentication取代,并且在较新的Rails版本中不受支持-不要浪费任何时间,尽管它们当时很棒。


如果您还需要OpenID支持以及密码支持,那么还可以使用RestfulOpenIDAuthentication。


只是更新此内容:Ryan Bates的Railscast#250显示了从头开始构建身份验证系统。


插件restful_authentication和其他扩展它的插件可以完美满足您的需求。在github.com上快速搜索将发现许多教程,示例和扩展。只是去这里:
-http://github.com/search?q=restful_authentication

有几个使用restful_authentication的项目只是为了提供仅带有身份验证部分的准Rails应用程序的示例。

  • http://github.com/fudgestudios/bort-一个基本的Rails应用程序,具有:RESTful身份验证
  • http://github.com/mrflip/restful_authentication_example-另一个关于如何使用restful_authentication的示例的项目
  • http://github.com/activefx/restful_authentication_tutorial-与上面相同,但捆绑了一些其他插件。
  • http://railscasts.com/episodes/67-restful-authentication-很棒的截屏视频,介绍了restful_authentication
  • 这些信息应该足以让您开始寻找头和尾...祝您好运。


    restful_authentication是一个功能强大的工具,它非常灵活,可以立即提供您要查找的大多数内容。但是,有几点警告:

  • 不要以"控制"来思考。在Rails中,模型,视图和控制器比" Webforms风格"的ASP.NET更独立。独立地从每个层中计算出您想要的内容,编写匹配的测试/规格并确保每个层都在按照您的期望进行。
  • 即使您使用的是插件,也无法替代(至少部分)读取生成的代码。如果您对幕后情况有一个全面的了解,您会发现调试和自定义要容易得多。

  • Clearance的又一票-可能不像authlogic那样可定制或不那么有效,但是就能够将其放到适当的位置而言,绝对值得一看。


    推荐阅读