我正在使用Laravel Sanctum對用戶進行身份驗證。我想要一條可供客人和登錄用戶訪問的路線。登錄用戶在 Authorization 標頭中發送 API 令牌。
我試過在沒有身份驗證的情況下創建路由,但這樣我就看不到登錄的用戶。
Route::get('noauth', function() {
return Auth::check();
});
GET /noauth with auth header returns false, user is not logged in
GET /noauth without auth header returns false, user is not logged in
我也試過使用auth:sanctum中間件,但這樣客人就無法訪問該頁面。
Route::get('yesauth', function() {
return Auth::check();
})->middleware('auth:sanctum');
GET /yesauth with auth header returns true, the user is logged in
GET /yesauth withouth auth header returns 401, unauthorized
解決方案應該使用 auth 標頭回傳 true,不使用 auth 標頭回傳 false。
uj5u.com熱心網友回復:
Authweb默認情況下使用警衛。將其更改為sanctum在/config/auth.php:
'defaults' => [
// 'guard' => 'web',
'guard' => 'sanctum',
'passwords' => 'users',
],
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/357642.html
標籤:php 拉拉维尔 验证 laravel-sanctum
