2012-06-03 1 views
1

Я читал статью, which shows how to redirect to a specified login page. Тем не менее, я хочу, чтобы пользователь подключился к интерфейсу, он должен быть перенаправлен на frontend-login-страницу, а аналогичный - на бэкэнд. Является ли это возможным?Выбрать для перенаправления на 2 loginUrl с Yii?

+3

да, можно –

+0

вы можете объяснить больше? – Silentbang

+0

, когда пользователь переходит к интерфейсу и бэкэнд, как выглядят URL? и являются отдельными контроллерами или модулями интерфейса и внешнего интерфейса? –

ответ

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'))); 
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', 
    ), 

Пожалуйста, смотрите этот URL: http://www.yiiframework.com/wiki/59/

А потом на главном контроллере (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('*'), 
     ), 
    ); 
} 

Пожалуйста, смотрите этот URL: http://www.yiiframework.com/doc/guide/1.1/en/topics.auth

0
'components' => [ 
    ... 
    'user' => [ 
     'identityClass' => 'app\models\User', 
     'loginUrl' => [ 'YourController\YourLogin' ], 
    ], 
] 

в main.php.

loginUrl должен быть объявлен с массивом

Смежные вопросы