第 6 章 用户模型
第 5 章末尾创建了一个临时的用户注册页面(5.4 节)。本书接下来的五章会逐步在这个页面中添加功能。本章我们要迈出关键的一步,创建网站中用户的数据模型,并实现存储数据的方式。第 7 章会实现用户注册功能,并创建用户资料页面。用户能注册后,我们要实现登录和退出功能(第 8 章)。第 9 章(9.2.1 节)会介绍如何保护页面,禁止无权限的用户访问。最后,在第 10 章实现账户激活(从而确认电子邮件地址有效)和密码重设功能。第 6 章到第 10 章的内容结合在一起,为 Rails 应用开发一个功能完整的登录和认证系统。或许你知道已经有很多开发好的 Rails 认证方案,旁注 6.1解释了为什么,至少在初学阶段,最好自己动手实现。
旁注 6.1:自己开发认证系统
基本上所有 Web 应用都需要某种登录和认证系统。为此,大多数 Web 框架都提供了多种实现方式,Rails 也不例外。为 Rails 开发的认证和权限系统有 Clearance、Authlogic、Devise 和 CanCan。除此之外,还有一些不是 Rails 专用的方案,基于 OpenID 和 OAuth 实现。所以你肯定会问,为什么我们要重复制造轮子,为什么不直接使用现成的方案,而要自己开发呢?
首先,实践已经证明,大多数网站的认证系统都要对第三方代码库做一些定制和修改,这往往比重新开发一个工作量还大。再者,现成的方案就像一个“黑盒”,你无法了解其中到底有些什么功能,而自己开发的话能更好地理解实现的过程。而且,Rails 最近的更新(参见 6.3 节),让开发认证系统变得很简单。最后,如果以后要用第三方系统的话,因为自己开发过,所以能更好地理解实现过程,便于定制功能。