環境
php7.4
laravel 6.20.26
routes\web.php
php:PHP
1Route::get('/auth_login', function () { 2 $credentials = [ 3 "email" => "emailの値", 4 "password" => "passwordの値" 5 ]; 6 7 if (Auth::attempt($credentials)) { 8 dump("認証しました"); 9 } else { 10 dump("認証に失敗しました"); 11 } 12 13 dump(Auth::id()); // idが取得できる 14}); 15 16Route::get('/auth_check', function () { 17 dump("認証確認"); 18 dump(Auth::id()); // idが取得できない 19});
「/auth_login」にアクセスします。
Auth::attempt
で認証を行い、認証が成功します。
その後Auth::id()
でユーザーIDが取得できます。
ですが、URL「/auth_check」に遷移するとログイン状態が維持されていなくAuth::id()
が取得できません。
考えられる原因がありましたら教えて頂けると助かります。
以下追記です。
sessionが機能しているかテストしました。
Auth::attempt
を利用するとsession自体がうまく取得できなくなります。
php:PHP
1Route::get('/auth_login', function () { 2 $credentials = [ 3 "email" => "emailの値", 4 "password" => "passwordの値" 5 ]; 6 7 if (Auth::attempt($credentials, true)) { 8 dump("認証しました"); 9 } else { 10 dump("認証に失敗しました"); 11 } 12 13 session(["test_session" => "セッションテスト"]); 14 15 dump(Auth::id()); // idが取得できる 16}); 17 18Route::get('/auth_check', function () { 19 dump("認証確認"); 20 dump(Auth::id()); // idが取得できない 21 22 dump(session("test_session", "セッション取得に失敗")); // 「セッション取得に失敗」が出力 23});
Auth::attempt
を利用していない場合は、session値は取得できます。
php:PHP
1Route::get('/auth_login', function () { 2 session(["test_session" => "セッションテスト値"]); 3}); 4 5Route::get('/auth_check', function () { 6 dump(session("test_session", "セッション取得に失敗")); // 「セッションテスト値」が出力 7});
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。