我正在嘗試將 Sanctum 用于僅 API 應用程序。我沒有將它用于 SPA。我有一個由 Sanctum 中間件設置和保護的單一端點。我正在通過 tinker cli 工具為所述用戶創建一個用戶和一個令牌。然后,我將令牌粘貼到授權選項卡中不記名令牌選擇下的 Postman 中。但是,當我提交請求時,出現未經身份驗證的錯誤。不太確定我在這里做錯了什么。密切關注提供的文檔以及我能找到的稀疏視頻。下面是一些代碼片段。我很欣賞這里的洞察力。API.phpRoute::middleware('auth:sanctum')->apiResource('/documents','DocumentHandlerController');中間件/Authenticate.phpclass Authenticate extends Middleware{ /** * Return 401 when not authorized * * @param \Illuminate\Http\Request $request * @return string|null */ public function handle($request) { return response()->json( ['message'=>'Unauthorized'] ,Response::HTTP_UNAUTHORIZED ); }}來自我的控制器的功能 public function index() { return response()->json(['Success'],Response::HTTP_OK); }
5 回答

MYYA
TA貢獻1868條經驗 獲得超4個贊
我遇到了同樣的問題,但我通過添加到標題解決了它:Accept with value application/json
。
這是我發現的最佳解決方案,也許其他人有其他解決方案。

慕斯王
TA貢獻1864條經驗 獲得超2個贊
我有一個類似的問題,我得到了回應{"message":"Unauthenticated."}
。
對我來說,這是因為在我的.env
文件中,我的 APP_URL 是https://www.example.com
并且我試圖通過 URL 訪問 API https://example.com
。
https://www.example.com
當我更改使 API 調用起作用的URL 時。

守候你守候我
TA貢獻1802條經驗 獲得超10個贊
在重構過程中,他們忘記了包含默認保護定義。
只需在 api guard 的 config/sanctum.php 末尾添加:
'guard'?=>??'api'

收到一只叮咚
TA貢獻1821條經驗 獲得超5個贊
試圖解決這個問題時,我整天都死了。就我而言,問題出在 Apache 配置中。我希望這可以幫助你。
RewriteCond %{HTTP:Authorization} ^(.+)$ RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

隔江千里
TA貢獻1906條經驗 獲得超10個贊
由于某種原因?auth:sanctum
不適用于 API 身份驗證。我也遇到了同樣的問題,然后我在github上看到了這個問題。
我現在看到兩個解決方案
jwt-auth
API認證
- 5 回答
- 0 關注
- 341 瀏覽
添加回答
舉報
0/150
提交
取消