在Ruby on Rails中validation的最佳解决scheme

我正在寻找可以在我的RoR应用程序中使用的预build解决scheme。 我理想的是寻找类似于提供电子邮件validation,注册控件的ASP.NET Forms身份validation,并允许用户重置密码。 哦,是的,很容易让我把当前login到应用程序的用户。

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

AuthLogic似乎是块上的新手,似乎是restful_authentication的下一个演变,更易于使用等

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

编辑:现在,Rails 3已经出来了,Devise似乎是这个块上新的新的孩子

https://github.com/plataformatec/devise或者我一直在;has_secure_password内置于Rails中的has_secure_password来滚动我自己的身份validationhttp://railscasts.com/episodes/250-authentication-from-scratch-revised

注意:Ruby Toolbox是一个很好的网站,可以根据GitHub的观察者数量find当前最好的解决scheme:

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

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

对于一个非常简单的解决scheme去清除 。

如果你正在寻找更多的selectdevise是一个很好的解决scheme。 它使用Warden这是一个基于机架的authentication系统。

我还想指出一个关于扩展Restful Authentication的核心function的极好的教程/讨论 ,以防你正在寻找更强大的function。

还有RestfulOpenIDAuthentication,如果你想要OpenID支持,除了密码支持。

请注意,LoginGenerator和SaltedLoginGenerator已经被Restful Authentication取代,并且在新的Rails版本中不被支持 – 不要浪费任何时间,虽然他们当时很棒。

我真的很喜欢沉思。 非常简单,有一些好的钩子,是可testing的。

AuthLogic似乎是你想要的。 这是非常可configuration的,尽pipe它不会为您生成代码,但使用起来非常简单。 对于电子邮件validation和密码恢复,您可能需要使用:perishable_token列。 AuthLogic负责处理,只需在使用时重置即可。 有关如何设置基本应用程序的信息,请参阅AuthLogic上的Ryan Bates的Railscast以及“官方”示例应用程序。 AuthLogic的创始人本•约翰逊(Ben Johnson)也写了一篇关于如何重置密码的博客文章。

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

更新:现在我可以发布更多的链接,所以我联系了一些。 谢谢marinatime在此期间添加链接

restful_authentication是一个非常灵活的function强大的工具,可以提供大部分你正在寻找的东西。 然而,一些警告:

  1. 不要用“控制”来思考。 在Rails中,Model,View和Controller比“Webforms-style”ASP.NET更独立。 从每个层面独立制定你想要的,写出testing/规格来匹配,并确保每一层都在做你期望的。
  2. 即使你正在使用一个插件,也不能替代读取(至less一些)生成的代码。 如果你有一个大胆的想法,你会发现debugging和定制更容易。

插件restful_authentication和扩展它的其他插件,完美地回答你的需求。 在github.com上快速search会发现很多教程,例子和扩展。 只要去这里:
http://github.com/search?q=restful_authentication

有几个项目使用restful_authentication来提供只有authentication部分的裸机Rails应用程序的例子。

  1. http://github.com/fudgestudios/bort – 一个基地铁轨应用程序具有:RESTfulauthentication
  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

这个信息应该足以让你开始find头和尾巴…祝你好运。

只是更新:Ryan Bates的Railscast#250显示了从零开始构build身份validation系统….

另一个选票清除 – 也许不是定制或“在”作为authlogic,但只是能够放在适当位置去,这绝对值得看看。