我在Laravel中構建了一個API,並試圖使用HTTP基本身份驗證。我創建了一個電子郵件/密碼組合爲[email protected]:testpass
的用戶。我在下面的網址需要身份驗證訪問端點:https://[email protected]:[email protected]/users/2
Laravel HTTP基本身份驗證不起作用
當我附上auth.basic
路由過濾器,以這條路,我可以成功進行身份驗證,並通過Auth
類訪問身份驗證的用戶的詳細信息,但因爲這是一個API我想使用無狀態的HTTP基本身份驗證,所以我寫了我自己的過濾器:
// Our own auth filter to use onceBasic and return a consistent API response
Route::filter('basic.once', function() {
$result = Auth::onceBasic();
if ($result->getStatusCode() === 401) {
// Unauthorized, return our own response
return Response::json([
'message' => 'Bad credentials'
], Config::get('status.error.unauthorized'));
}
return $result;
});
無論什麼時候,的Auth::onceBasic()
結果這裏總是返回未經授權,即使用戶名/密碼組合,我送住宿的相同。即使我在我的過濾器中將Auth::onceBasic()
更改爲Auth::basic()
,它仍會返回未授權狀態。
我甚至不知道從哪裏開始調試,因爲我的過濾器基本上與Laravel附帶的auth.basic
過濾器一樣,儘管使用了更多的代碼來生成一致的API輸出。
你可以發佈你的用戶模型嗎?另外,你的密碼在分貝哈希? – lukasgeiter 2014-11-04 20:55:17
你解決了嗎?您是否嘗試更改.httaccess? – chemitaxis 2014-11-24 18:33:36