Rails,用户认证

Rails,用户认证

最近自己写了写代码,研究了一下关于Rails中用户认证方面的知识。

Rails中的用户认证解决方法,看到大多数是靠插件实现,比如:
LoginGenerator
Acts_as_authenticated
restful_authentication
......

其中采用的方法都类似于《Agile Web 2e》的dopet示例的处理方法:

  • 通过虚拟的password属性来作为密码
  • 通过随机生成的salt和密码明文(或者MD5等方法)加密后存入数据库
  • 在controller中通过before_filter来阻止未通过认证的用户对action进行调用
  • 在view中通过如islogin?,isadmin?等方法来让保护需要登录或者为管理员的行为


插件中一般都是做出一个Model和两个Controller,处理用户数据的php?name=User" onclick="tagshow(event)" class="t_tag">User。而Controller,一个负责登录和登出,另一个php?name=User" onclick="tagshow(event)" class="t_tag">User的负责用户创建和删除。

关于记住用户状态的实现,大部分用户认证的插件都有。参考User+authentication+in+Ruby+on+Rails:
添加一个cookie_hash字段到user中:

[Copy to clipboard] [ - ]
实用的说明,越多越好。
精品文章,建议maninred再加上一点userstory和testcase。