Ruby on Rails没有内置标准用户身份验证系统的原因是什么?

时间:2011-02-26 22:36:12

标签: ruby-on-rails django cakephp frameworks symfony1

这个问题旨在了解一般的RoR和框架。看起来RoR从来没有任何标准的用户身份验证系统。这只是历史原因(就像它自然发生的那样)......还是故意的?由于RoR是一种网站构建工具,因此用户身份验证通常是网站的重要组成部分。

另外,另一个问题是,其他流行的框架Django,Symfony,CakePHP是否内置了用户身份验证?

6 个答案:

答案 0 :(得分:5)

没有合理的通用方法来进行用户身份验证。大多数框架都会让您选择最接近您想要完成的插件。

例如,请考虑以下两种情况:

  • 一个博客,其中有一位管理员使用受密码保护的面向管理员的工具
  • YouTube等允许用户注册和管理自己内容的网站

这两个站点都需要完全不同的身份验证系统;哪些系统应该Rails迎合开箱即用?

答案 1 :(得分:3)

Rails核心团队希望确保Rails的开放性足以满足您的需求。没有一种通用的身份验证方案,因此核心团队决定将其排除在外。 Rails可以通过宝石和插件轻松扩展,因此它们属于它们。

一些示例包括WardenRails Warden插件,DeviseAuthlogicRestful Authentication

答案 2 :(得分:1)

CakePHP有一个内置的Authentication组件,非常直观且易于实现。

答案 3 :(得分:0)

您提到的大多数这些框架都是工具包,而不是完整的产品。您自己构建这些东西,或者利用社区中的插件。 Django的管理插件/模块具有开箱即用的身份验证。事实上,Drupal也是如此。

答案 4 :(得分:0)

认证可以(并且在我看来)是品味和需求的问题。如果Rails包含这样的东西,它将开始成为一个网站,而不是一个框架。程序员必须可以自由选择各种实现。这就是宝石可用的原因。

答案 5 :(得分:0)

我已经在Rails和CakePHP中进行了一些编程,我可以说Rails不需要提供这样的机制。社区非常好,有许多例子(已经说过,如Devise,Authlogic ......)由非常优秀的程序员制作。当然,还有许多在线教程(以及railscast,它们非常棒)为您的项目编写成功的设置。那么,如果我们拥有所有这些,为什么我们需要像cakePHP机制这样的东西呢?没关系,它有效,但是只有一个非常好的教程,这就是全部(也许就够了......)。所以,最后,如果你有一个很好的社区,你不应该关心技术的核心,总会有其他人更有经验满足你的需求。如果你没有找到它,那就自己做,在过程中你会找到很多帮助! :)