2016-08-17 3 views
1

Например:
1. Пользователь пытается получить доступ к mypage.php? Param = 1.
2. У него нет доступа, поскольку он не аутентифицирован.
3. Итак, он пытается войти в свою учетную запись google.
4. У него есть доступ успешно.
5. Теперь я хотел бы перенаправить этого пользователя на mypage.php? Param = 1.Перенаправление после авторизации с помощью YII2

+0

немного исследований о нем, попробуйте кодирования его и вернуться, если вы застряли. Это не «код для меня», вы отправляете код и помогаете. –

ответ

0

В Yii2 нам необходимо внести return() результат действия. Мне кажется, вам нужно добавить return перед переадресацией.

return $this->redirect('/user/index',302); 
0
//May be this is not proper way but its working for me 

//in your common code where you check user is login or not 
if(Yii::$app->user->isGuest) { 
    \Yii::$app->user->loginUrl = ['site/login','return'=>\Yii::$app->request->url]; 
    return $this->redirect(\Yii::$app->user->loginUrl); 
} 


// and after login 

$return_url = \Yii::$app->request->get('return'); 

if(!empty($return_url)){ 
    return $this->redirect($return_url); 
}else{ 
    return $this->goBack(); 
} 
+0

Добавьте некоторое объяснение с ответом на вопрос, как этот ответ помогает OP в устранении текущей проблемы –

1

Изменить как этот

Вы можете использовать Yii :: $ app-> request-> ссылающаяся, которая возвращает последнюю страницу пользователь был на.

$return_url = Yii::$app->request->referrer;  

//var $return_url have previous url 

if($return_url!=NULLL){  

    return $this->redirect($return_url); 

} 

else{ 

    return $this->goBack(); 

} 
0

Yii поддерживает URL-адрес перенаправления пользователей, когда они были перенаправлены с помощью правил доступа. Вы можете найти по адресу: Yii2::$app->user->returnUrl и проверить, затем перенаправить, если он не пуст.

0

Вы можете использовать

return $this->redirect(Yii::$app->user->getReturnUrl()); 

вместо того, чтобы

return $this->goHome(); 
Смежные вопросы