Ruby on Rails中的身份验证的最佳解决方案

时间:2008-08-23 15:27:12

标签: ruby-on-rails ruby authentication

我正在寻找可以在我的RoR应用程序中使用的预构建解决方案。我理想地寻找类似于ASP.NET Forms身份验证的东西,它提供电子邮件验证,注册控制,并允许用户重置他们的密码。哦是的,并且很容易让我拉出当前登录到应用程序的用户。

我已经开始研究已经写过的文章,但我发现它真的很混乱。我查看了LoginGenerator,RestfulAuthentication,SaltedLoginGenerator,但似乎没有一个地方有很棒的教程或提供它们的比较。如果有一个我还没有发现的网站,或者大多数人都使用的是事实上的标准,我会很感激你的帮助。

12 个答案:

答案 0 :(得分:82)

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-revisedhas_secure_password滚动我自己的身份验证

附注:Ruby Toolbox是一个很棒的网站,可以找到各种类别的当前最佳解决方案(基于GitHub观察者的数量):

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

答案 1 :(得分:21)

我真的推荐Restful Authentication。我认为这几乎是事实上的标准。

答案 2 :(得分:10)

对于一个非常简单的解决方案,请使用Clearance

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

答案 3 :(得分:3)

如果除了密码支持之外还需要OpenID支持,还有RestfulOpenIDAuthentication

答案 4 :(得分:3)

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

答案 5 :(得分:3)

我还想指出一个很好的tutorial/discussion来扩展Restful Authentication的核心功能,以防你正在寻找更强大的东西。

答案 6 :(得分:3)

AuthLogic似乎就是你想要的。它是非常可配置的,虽然它不会为您生成代码,但它很容易使用。对于电子邮件验证和密码恢复,您可能希望使用:perishable_token列。 AuthLogic负责处理它,您只需在使用它时重置它。有关如何设置基本应用程序的信息,您可以查看Ryan Bates的Railscast on AuthLogic和“官方”示例应用程序。 AuthLogic的创建者Ben Johnson也撰写了一篇关于如何REST重置密码的博客文章。

不幸的是我不能发布多个链接,但是railscast,密码重置博客文章和示例应用程序的链接都在自述文件中(请参阅自述文件的README回购)

更新:现在我可以发布更多链接,所以我再联系了一些。感谢marinatime在同时添加链接

答案 7 :(得分:3)

我真的很喜欢思想机器人的许可。非常简单,并且有一些好的钩子并且是可测试的。

答案 8 :(得分:2)

restful_authentication是一个功能强大的工具,非常灵活,可以提供您想要的大部分内容。但是,有几点需要注意:

  1. 不要考虑'控制'。在Rails中,模型,视图和控制器比“Webforms风格”的ASP.NET更加独立。从每个图层中独立计算出你想要的东西,编写测试/规格以匹配并确保每一层都按照你的期望进行。
  2. 即使您使用插件,也无法替代(至少部分)生成的代码。如果您对引擎盖下的内容有一个全局的了解,您会发现调试和自定义变得更加容易。

答案 9 :(得分:2)

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

有几个项目使用restful_authentication只是为了提供一个只有身份验证部分的简单Rails应用程序的例子。

  1. http://github.com/fudgestudios/bort - 一个基础轨道应用程序,具有:RESTful身份验证
  2. http://github.com/mrflip/restful_authentication_example - 另一个有关如何使用restful_authentication的很好的考试项目
  3. http://github.com/activefx/restful_authentication_tutorial - 与上面相同,捆绑了其他一些插件。
  4. http://railscasts.com/episodes/67-restful-authentication - 一个很棒的截屏视频,解释restful_authentication
  5. 这些信息应该足以让你开始寻找头脑和尾巴......祝你好运。

答案 10 :(得分:2)

只需更新此内容:Ryan Bates'Railscast #250显示从头开始构建身份验证系统....

答案 11 :(得分:0)

Clearance的另一次投票 - 可能不像authlogic那样可以自定义或者在'in',但就能够放弃它而言,它绝对值得一看。

相关问题