2016-02-07 5 views
1

Я хочу перенаправить пользователя на страницу входа, если он не вошел в систему на странице. Но я actionLogin в моемСпособ перенаправления страницы входа в систему, если пользователь не зарегистрирован

registrationController

Так что, когда я использую в моем общем/главная:

'as beforeRequest' => [ //if guest user access site so, redirect to login page. 
    'class' => 'yii\filters\AccessControl', 
    'rules' => [ 
     [ 
      'actions' => ['login', 'error'], 
      'allow' => true, 
     ], 
     [ 
      'allow' => true, 
      'roles' => ['@'], 
     ], 
    ], 
], 

Он непрестанно перенаправляет меня

index.php ? r = сайт% 2Flogin

Можно изменить основной Войти перенаправлять

index.php? Г = регистрационным% 2Flogin

Если возможно, где я должен переписать код или изменить что-то .. ! EDIT! Хорошо,

'пользователь' => [ 'loginUrl' => [ 'регистрация/Войти'],],

проблема решительность, но когда я хочу, чтобы перейти к регистрации/индекс, чтобы зарегистрироваться пользователь перенаправляет меня на регистрацию/логин. Это можно исключить из принудительного исполнения. Я хочу сделать:

index.php г = регистрация

единственный доступный путь

А вот мой facebook Войти я хочу сделать это включить слишком

public function oAuthSuccess($client) { 
     // get user data from client 
     $userAttributes = $client->getUserAttributes(); 

     $user = User::find()->where(['Email' => $userAttributes['email']])->one(); 

     if (!$user) { 
      $newuser = New SignupForm(); 
      $newuser->oAuthSuccess($client); 
      $user = User::find()->where(['Email' => $userAttributes['email']])->one(); 
      if ($newuser->validate() && Yii::$app->getUser()->login($user)) { 
       Yii::$app->session->setFlash('success', Yii::t('app', 'Udało się poprawnie zalogować. Prosimy dokonać zmian w ustawianiach profilu.')); 
       return $this->redirect('index.php?r=content/news'); 
       } 
     } 

     Yii::$app->user->login($user); 
    } 

ответ

0

В вашем app/config/web.php (для базового шаблона) или app/frontend/config/main.php (для предварительного шаблона) - reference

return [ 
    // ... 
    'components' => [    
     // ... 
     'user' => [ 
      'identityClass' => 'common\models\UserIdentity', 
      'enableAutoLogin' => true, 
      'loginUrl'=>['registration/login'] 
     ], 

     // ... 

и в контроллере для, например, RegistrationController.php

// ... 
class RegistrationController extends Controller 
{  
    public function behaviors() 
    { 
     return [ 
      'access' => [ 
       'class' => AccessControl::className(),     
       'rules' => [ 
        [ 
         'actions' => ['login', 'signup'], // those action only which guest (?) user can access 
         'allow' => true, 
         'roles' => ['?'],       
        ], 
        [ 
         'actions' => ['home', 'update'], // those action only which authorized (@) user can access 
         'allow' => true, 
         'roles' => ['@'], 
        ], 
       ], 
      ], 
      'verbs' => [ 
       'class' => VerbFilter::className(), 
       'actions' => [ 
        'logout' => ['post'], 
       ], 
      ], 
     ]; 
    } 

    // ... 
+0

ок я разрешил его, но как насчет facebook входа в систему? I Редактировать мой пост, где я показываю функцию Yuo для входа в систему с facebook, которая не работает – Informer

+0

В чем проблема с входом в facebook, просьба дать подробную информацию – SohelAhmedM

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