所以我濾波器之前有一個對我像REST API請求如下:Laravel 4.2返回與驗證:: onceBasic()的JSON響應
Route::filter('auth.api', function() {
Config::set('session.driver', 'array');
return Auth::onceBasic('username');
});
這完美的作品對我來說,只是我寧願它的回報一個JSON響應。所以我嘗試圍繞它在Request::json()
和失敗慘敗。然後我認爲我可以創建一個AFTER過濾器,以json的形式返回響應。但是,我無法確定在這一點上驗證是否成功。
Route::filter('auth.api.after', function($request, $response) {
die(var_dump($response));
});
我想在失敗時迴應json。我怎樣才能做到這一點?
工作代碼:
Route::filter('auth.api', function() {
Config::set('session.driver', 'array');
$response = Auth::onceBasic('username');
if (!is_null($response)) {
$failMessage = [
'status' => 'error',
'message' => 'Invalid Credentials'
];
$headers = ['WWW-Authenticate' => 'Basic'];
return Response::json($failMessage, 401, $headers);
}
});
這是靠近但沒有雪茄。我意識到它是這樣做的。不過,我只想在失敗時返回一個JSON響應。這將成功返回一串「無效憑證」或用戶的JSON表示。我想要一個失敗的json響應,並且沒有任何成功 – 2014-11-06 15:02:45
我將此標記爲答案,因爲它與我所尋找的最接近。請更新我的工作代碼。 – 2014-11-06 15:16:20
即使auth沒有失敗,您也應該始終返回響應。看到我更新的答案。 – Marwelln 2014-11-06 17:14:24