【Laravel】セッションタイムアウト後にログイン処理を行うと、タイムアウト時点のURLに遷移する
Q&A
Closed
前提
Laravelで作成したWebサービスでセッションタイムアウト発生すると、
ログイン画面に遷移するようにしています。
またマルチドメインにしているため、ログイン後の遷移先は、「管理者」ユーザと
「一般」ユーザで別にしています。
解決したいこと
「管理者」ユーザでセッションタイムアウトした後に、「一般」ユーザでログインをすると、
セッションタイムアウト前の「管理者」ユーザのページに遷移してしまいます。
具体的には、セッションタイムアウト後の再ログインで以下「一般ページ」に遷移するようにしているのですが、
実際には「管理者ページ」へ遷移されてしまいます。
・管理者ページ:admin/mypage
・一般ページ:user/mypage
ログイン後の遷移先はLoginControllerの「redirectTo」メソッドとGateを使用し、
以下のように振り分けています。
ログを確認したところ、「一般ユーザ」での再ログイン時にはちゃんと
「return route('user.mypage');」を通っていました。
ただブラウザで表示されるURLは「admin/mypage」となってしまいます。
LoginContoroller.php
public function redirectTo()
{
if (Gate::allows('isAdmin')){
\Log::info('adminでログイン');
return route('admin.mypage');
}
else {
\Log::info('userでログイン');
return route('user.mypage');
}
}
なにかヒントとなる情報だけでもいただけますと幸いです。
よろしくお願いいたします。
0