【Laravel】ログイン後のリダイレクト先でログイン状態が保持されない
ログイン後のリダイレクト先でログイン状態が保持されない
Laravel11でWebアプリをつくっています。
userテーブルではないテーブルのカラムでログインするため、ログインを自作しています。
ログイン画面でID(userテーブルから変更)とパスワードを入力し、
認証済みの状態でのみ遷移できるように/profileを設定しましたが、/profileに遷移さません。
ログインはできていると認識しています(後述)。
解決方法を教えて下さい。
発生している問題・エラー
エラーは出ていません。
想定:/loginで入力してログインボタン押下、/profileに遷移してviewを表示
実際:/loginで入力してログイン押下、/loginに戻ってくる
該当するソースコード
auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => '変更したテーブル名',
],
],
UserController
public function login(Request $request)
{
$credentials = $request->only('user_name', 'password');
if (Auth::guard('web')->attempt($credentials)) {
// 認証成功
session()->regenerate();
return redirect()->intended('profile');
} else {
// 認証失敗
return redirect()->back()->withErrors(['message' => '認証に失敗しました']);
}
}
Web.php
Route::middleware('auth:web')->group(function (){
Route::get('/profile',[UserController::class,'profile'])->name('profile');
});
自分で試したこと
・UserControllerのloginメソッド内でAuth::user();
→ユーザ情報を取得できる。
→ログイン自体はできていると判断。
・UserControllerのloginメソッド内の最後にreturn view('profile');
→ユーザ情報を表示させる画面が表示できる。
→実装済みの処理にリダイレクトさせたいので削除。
・UserControllerのloginメソッド内にsession()->all());
→セッション情報の中にログインユーザに関してのものは存在しなかった。
「こういう情報が足りない」などあればご指摘いただければと思います。
0