При использовании автоматического выхода из системы в YII2 необходимо повторно перенаправить пользователя после входа в систему по тому же URL-адресу, на котором пользователь находился до автоматического выхода из системы - PullRequest
0 голосов
/ 17 октября 2019

Моя система, использующая YII2. Система автоматического выхода пользователя через некоторое время из-за неактивности. На данный момент он перенаправляет на главную домашнюю страницу после входа в систему. Но мне нужно перенаправить пользователя на ту же страницу, где он / она находился, когда система выходила из системы из-за неактивности.

Я пытался использовать URL возврата YII2, а также сеанс, но сеанс также разрушался при выходе пользователя из системы.

Мне также нужно сохранить личность пользователя, поскольку она должна перенаправляться только при повторном входе того же пользователя в систему после автоматического выхода из системы.

Я пробовал URL-адрес возврата YII2, а также сеанс.

Yii::$app->user->returnUrl = someurl

Над строкой для сохранения URL-адреса возврата и перенаправления на заданный URL-адрес

$url = Yii::$app->user->returnUrl;
return $this->goBack($url);

Чтобы перенаправить пользователя на предыдущий URL-адрес, но он не работает.

Также мне нужноидентифицируйте пользователя, пользователь должен быть тем же, кто вышел из системы из-за неактивности, иначе он перенаправит другого пользователя также на предыдущий URL, который вошел в первый раз.

1 Ответ

0 голосов
/ 18 октября 2019

Во-первых, метод goBack() не принимает аргументов . Он использует ранее установленный returnUrl (как в вашем примере).

Кроме того, проблема заключается в том, что при выходе из системы пользователь удаляет данные сеанса, связанные с аутентификацией. Если $destroySession истинно, все данные сеанса будут удалены. И $destroySession в методе logout() по умолчанию true, поэтому помимо данных сеанса, связанных с аутентификацией, удаляются также данные returnUrl.

Попробуйте выйти из системы с параметром $destroySession, установленным в false:

Yii::$app->user->logout(false)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...