这个问题旨在了解一般的RoR和框架。看起来RoR从来没有任何标准的用户身份验证系统。这只是历史原因(就像它自然发生的那样)......还是故意的?由于RoR是一种网站构建工具,因此用户身份验证通常是网站的重要组成部分。
另外,另一个问题是,其他流行的框架Django,Symfony,CakePHP是否内置了用户身份验证?
答案 0 :(得分:5)
没有合理的通用方法来进行用户身份验证。大多数框架都会让您选择最接近您想要完成的插件。
例如,请考虑以下两种情况:
这两个站点都需要完全不同的身份验证系统;哪些系统应该Rails迎合开箱即用?
答案 1 :(得分:3)
Rails核心团队希望确保Rails的开放性足以满足您的需求。没有一种通用的身份验证方案,因此核心团队决定将其排除在外。 Rails可以通过宝石和插件轻松扩展,因此它们属于它们。
一些示例包括Warden和Rails Warden插件,Devise,Authlogic和Restful Authentication。
答案 2 :(得分:1)
CakePHP有一个内置的Authentication组件,非常直观且易于实现。
答案 3 :(得分:0)
您提到的大多数这些框架都是工具包,而不是完整的产品。您自己构建这些东西,或者利用社区中的插件。 Django的管理插件/模块具有开箱即用的身份验证。事实上,Drupal也是如此。
答案 4 :(得分:0)
认证可以(并且在我看来)是品味和需求的问题。如果Rails包含这样的东西,它将开始成为一个网站,而不是一个框架。程序员必须可以自由选择各种实现。这就是宝石可用的原因。
答案 5 :(得分:0)
我已经在Rails和CakePHP中进行了一些编程,我可以说Rails不需要提供这样的机制。社区非常好,有许多例子(已经说过,如Devise,Authlogic ......)由非常优秀的程序员制作。当然,还有许多在线教程(以及railscast,它们非常棒)为您的项目编写成功的设置。那么,如果我们拥有所有这些,为什么我们需要像cakePHP机制这样的东西呢?没关系,它有效,但是只有一个非常好的教程,这就是全部(也许就够了......)。所以,最后,如果你有一个很好的社区,你不应该关心技术的核心,总会有其他人更有经验满足你的需求。如果你没有找到它,那就自己做,在过程中你会找到很多帮助! :)