所以我滤波器之前有一个对我像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