浏览 6963 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-29
restful_authentication是一个验证系统,支持rails2.0,提供了简单的用户注册登录注销、简单的验证等功能。 role_requirement是授权系统,能和restful_authentication很好的结合,该插件提供了授权的基本实现。 安装和配置: 步骤1:安装restful_authentication 命令行下: ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/restful_authentication/ ruby script/generate authenticated user sessions 第一步是安装插件。第二步生成文件,里面的user代表生成的模型的名称,可选–include-activation参数决定是否生成向新注册用户发送激活码的代码。 步骤2:安装role_requirement ruby script/plugin install http://rolerequirement.googlecode.com/svn/tags/role_requirement/ ruby script/generate roles Role User 第一步安装插件,第二步是生成文件结构并设置角色和用户之间的多对多关系。 这样,两个插件就基本安装配置完了,还需要修改一些东西: 1、由于一开始生成的restful_authentication的模型是user,在user.rb模型文件里,注释掉“attr_protected :roles”,因为会和“attr_accessible”发生冲突(这两个方法是黑名单和白名单的作用,只能用一个)。 2、可以在路由配置里加入: map.signup '/signup', :controller => 'users', :action => 'new' map.login '/login', :controller => 'sessions', :action => 'new' map.logout '/logout', :controller => 'sessions', :action => 'destroy' 然后在模板里加入: <% if logged_in? %> <p><strong>你以<%=h current_user.login %>的身份登录</strong></p> <p><%= link_to '注销', logout_path %></p> <% else %> <p><strong>你还没有登录。</strong></p> <p> <%= link_to '登录', login_path %> or <%= link_to '注册', signup_path %> </p> <% end %> 看,我们的验证插件已经很好工作了。 注:如果需要更强大验证功能,可查看:http://www.rubyplus.org/episodes/20-Extended-RESTful-Authentication-Rails-2-App.html,这个增强版的插件包含了邮件激活、修改密码、忘记密码等功能。但是修改密码和忘记密码存在安全隐患,请修改后使用。 3、由于role_requirement插件生成的文件不全,可以用scaffold命令重新生成role的缺失文件。在role.rb里加上了has_and_belongs_to_many :users。scaffold好后,添加一个新的角色“admin”,然后通过调用“role.users”来给“admin”添加成员。这样我们就可以来使用require_role方法来授权,这个方法比较强大。 如在控制器前添加: require_role "admin" 注意:如果需要在Role和User的连接表添加更详细的内容,则不适合使用roles_users连接表,可新建模型并通过through方法连接User和Role。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-01-13
http://www.rubyplus.org/episodes/20-Extended-RESTful-Authentication-Rails-2-App.html, 不能下载啊!
|
|
返回顶楼 | |
发表时间:2009-01-13
邮件激活、修改密码、忘记密码等功能怎么用呢?
|
|
返回顶楼 | |
发表时间:2009-01-23
require_role "admin" ,如果没有这个权限,页面转向在什么位置控制?
|
|
返回顶楼 | |
发表时间:2009-03-17
能否说详细点呢?
|
|
返回顶楼 | |
发表时间:2009-03-18
不建议用这个插件,现在来看安全隐患太多,而且授权功能也很一般化
|
|
返回顶楼 | |
发表时间:2009-03-19
那用什么比较好呢?
|
|
返回顶楼 | |
发表时间:2009-03-19
建议自己写,不过偷懒可以用用。。。
|
|
返回顶楼 | |
发表时间:2009-03-20
嗯,我在这个主题帖介绍的插件上面连删带改,现在看来和原来的插件大相径庭,有这功夫还真不如自己写一个了。rails写这种东西不难,而且验证授权还是自己写比较放心。
|
|
返回顶楼 | |
发表时间:2009-03-21
可以参照一下这个安装使用方法
http://www.8drink.com/using-role_requirement-with-rails/ |
|
返回顶楼 | |