|
发表于 2008-9-24 02:50:36
|
显示全部楼层
FreakAuth_light 包包括:
----用户: login/logout
----用户:registration
----记住密码
----修改密码
----站点部分访问限制
后台的管理程序可以用来:
----管理用户
----管理管理员
安装:
----需要 CI1.5.x
----mysql 4.0 或更高
根据以下步骤来安装:
----1下载FreakAuth_light
----2解压到本地目录
----3拷贝FreakAuth_light目录下的文件到CI的对应目录
----4把config_demo.php,autoload_demo.php,routes_demo.php 改名并换掉CI config目录下的config.php,autoload.php,routes.php ,并对原来 的文件做好备份。
----5通 过导入FreakAuto_DB.sql来创建必要的表
----6访问installer控制器,在该页面你可以检查是否创建了数据表和完成了必要的设置
----7在config.php文件中,填写你的迷失
----8 确保tmp目录可写
//理解访问控制角色(和它们的层次关系)
FreakAuth_light 基于4个主要的默认角色:
超级管理员 => 能做任何事包括创建管理员
管理员 => 你可以设置让他们能做什么
用户 => 指注册用户,你可以选择一些请求允许他们访问
来宾 => 指未注册的用户
*你还可以添加自己的(自定义)角色在 application/config/freakauth_light.php $config['FLA_roles'] 部分
注:角色的值设的越小,说明它的权限越高。
保护你的程序:
----在你的控制器中使用:
----$this->freakauth_light->check();
----用来限制不同角色的用户访问 控制器或控制器的Action
----它有两个可选参数:
----第一个参数可以用来指定用户组(如:admin)
----第二个参数用来限制是否只能是第一个参数指定的用户组才有访问的权限(非则表示,权限更高的用户组亦可访问)
示例:
$this->freakauth_light->check(); //表示登录的用户都可以访问,包括管理员和超级管理员等。
$this->freakauth_light->check('admin'); //表示只有admin 或比admin权限更高的用户才能访问。
$this->freakauth_light->check('admin',true);// 表示只能admin访问。
你可以在控制器的构造函数中或某个Action中使用check()方法。这个由你的情况而定,如果想限制整个控制器的所有Action的访问,那就放在构造函数中,否则就放到具体的Action中。
示例:略。
通过角色来控制访问:
有四个方法来做这项工作:
----1 isValidUser();
----2 isAdmin();
----3 isSuperAdmin();
----4 belongsToGroup();
前三个方法是涉及比较具体的(角色),而第四个方法更为通用(一般化)。
$this->freakauth_light->isValidUser();
如果FreakAuth系统没有工作或用户没有登录都将返回false,否则返回true
$this->freakauth_light->isAdmin();
....
$this->freakauth_light->isSuperAdmin();
....
$this->freakauth_light->belongsToGroup();
这个方法用来判断登录用户是否属于用户自定义的某个组。它有两个可选的参数:
第一个参数用来指定用户组
第二个参数用来指定用户是否只属于指定的用户组(如果设为false ,更高权限组的用户亦将返回true)
示例:略
图形验证码:
需设置 tmp目录可写。public 及其子目录亦要求可写。
可在 config/freakauth_light.php中自行设定是否需要给以下设定图形验证码:
登录,注册,修改密码
你也可以设 定是否使用大写字母,字母数字 或 字母数字特殊字符的混合形式。
怎样取得登录用户的信息:
----用户ID :$this->db_session->userdata('id');
----用户名:$this->db_session->userdata('user_name');
----用户组:$this->db_session->userdata('role');
使用mod_rewrite
在 .htaccess 文件中键入如下:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|public|tmp|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
将config.php中的$config['index_page']设为空, $config['index_page']='';
--------------------------------------------------------------------------------------------------------------------------
以上内容译自 FreakAuth_light 官方document ,并非直译,水平有限,不吝赐教。 |
评分
-
查看全部评分
|