我读过一篇文章,它展示了如何重定向到指定的登录页面。但是,我想要的是如果用户来到前端,他们应该被重定向到前端登录页面,类似的情况也适用于后端。是否可以?
问问题
3704 次
3 回答
3
请在您的配置文件 ( main.php
) 上设置登录 URL。
// user
'user'=>array(
// enable cookie-based authentication
'allowAutoLogin'=>true,
// set the url where user must be redirected if authentication needed
// use null to force 403 HTTP error
'loginUrl'=>'/site/login',
// set here the name of a class
// that extends CWebUser and it is stored in
// protected/components/<classname>
// see: http://www.yiiframework.com/doc/cookbook/60/
'class' => 'WebUser',
),
请看这个网址:http ://www.yiiframework.com/wiki/59/
然后在您的 Home Controller( SiteController.php
) 上添加此代码以使您的 Index Home 只能由经过身份验证的用户访问。
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
);
}
/**
* Specifies the access control rules.
* This method is used by the 'accessControl' filter.
* @return array access control rules
*/
public function accessRules()
{
return array(
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('index', 'action1', 'action2', 'anotherAction'),
'users'=>array('@'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
请看这个网址:http ://www.yiiframework.com/doc/guide/1.1/en/topics.auth
于 2012-06-04T04:29:51.867 回答
0
最简单的方法应该是根据需要确定用户值
Yii::app()->getUser()->setState('LoginReturnUrl', 'frontend/login');
或者
Yii::app()->getUser()->setState('LoginReturnUrl', 'backend/login');
并在您的控制器内重定向:
$this->redirect(Yii::app()->createUrl(Yii::app()->getUser()->getState('LoginReturnUrl')));
于 2012-06-03T17:39:28.390 回答
0
'components' => [
...
'user' => [
'identityClass' => 'app\models\User',
'loginUrl' => [ 'YourController\YourLogin' ],
],
]
在 main.php 中。
loginUrl 必须用数组声明
于 2015-02-10T08:25:35.587 回答