Dar*_*jar 3 php authentication login yii
我正在使用Yii开发一个网站.
当我使用gii代码生成器创建模块时,它会自动将身份验证添加到该特定模型和控制器的管理页面.
但我想在索引页面本身添加用户身份验证.因此,当用户打开网站时,它应该要求登录.
我在"view\site \"目录中有index.php,login.php也在同一目录下.
我在"\ controller"目录中有sitecontroller.php(通常)
这是我在Yii框架中的第一个项目.当网站打开时,有人建议我如何应用用户身份验证.
只需在SiteController的index()操作的顶部添加以下内容:
if(Yii::app()->user->getId()===null)
$this->redirect(array('site/login'));
Run Code Online (Sandbox Code Playgroud)
它将检查用户是否已登录.如果不是这样,页面将重定向到登录.
为了避免未记录的用户访问任何操作,您需要修改控制器的accessRules()函数:
public function accessRules()
{
return array(
array('allow',
'actions'=>array(),
'users'=>array('*'),
),
array('allow',
'actions'=>array(),
'users'=>array('@'),
),
array('allow',
'actions'=>array(),
'users'=>array('admin'),
),
array('deny',
'actions'=>array(),
'users'=>array('*'),
),
);
}
Run Code Online (Sandbox Code Playgroud)
在每个控制器中,我们都有这个功能,在其中我们有四个数组.每个数组都声明一个访问规则.在'actions'参数中,我们指定哪些操作将影响该访问规则,在'users'中我们指定允许哪些用户访问操作.'*'表示所有用户,经过身份验证或未经身份验证.'@'表示只有经过身份验证的用户,'admin'当然只表示管理员成员.
如果任何'actions'参数没有分配实际操作,那么只需删除而不是行:
array('allow',
'users'=>array('admin'),
),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11708 次 |
| 最近记录: |