Laravel 5.2 JSON 响应错误 api_token
Laravel 5.2 JSON response to request with wrong api_token
我在控制器中使用 auth:api 中间件 (Laravel 5.2)。
class RestfulController extends Controller
{
public function __construct() {
$this->middleware(['api', 'auth:api'], ['except' => ['login'] ]);
}
}
路线:
Route::group(['prefix' => 'api'], function () {
Route::get('/login', ['uses' => 'RestfulController@login', 'as'=>'login']);
Route::get('/list', ['uses' => 'RestfulController@list', 'as'=>'list']);
});
如果请求不包含或包含无效 api_token 框架重定向到登录页面。相反,我想 return JSON 响应错误。如何实施?
你应该检查 api
和 auth:api
中间件组并寻找 一个正在做的。如果它在供应商包内,您将需要扩展它并进行更改。
更改app/Http/Middleware/Authenticate.php句柄方式,会响应json
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
$response = [
'status' => 'error',
'message' => 'This is error message'
];
return Response::json($response);
}
}
return $next($request);
}
我在控制器中使用 auth:api 中间件 (Laravel 5.2)。
class RestfulController extends Controller
{
public function __construct() {
$this->middleware(['api', 'auth:api'], ['except' => ['login'] ]);
}
}
路线:
Route::group(['prefix' => 'api'], function () {
Route::get('/login', ['uses' => 'RestfulController@login', 'as'=>'login']);
Route::get('/list', ['uses' => 'RestfulController@list', 'as'=>'list']);
});
如果请求不包含或包含无效 api_token 框架重定向到登录页面。相反,我想 return JSON 响应错误。如何实施?
你应该检查 api
和 auth:api
中间件组并寻找 一个正在做的。如果它在供应商包内,您将需要扩展它并进行更改。
更改app/Http/Middleware/Authenticate.php句柄方式,会响应json
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
$response = [
'status' => 'error',
'message' => 'This is error message'
];
return Response::json($response);
}
}
return $next($request);
}