【问题标题】:Laravel 5.2 JSON response to request with wrong api_tokenLaravel 5.2 JSON 响应带有错误 api_token 的请求
【发布时间】:2016-04-10 21:08:25
【问题描述】:

我在控制器(Laravel 5.2)中使用 auth:api 中间件。

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 框架重定向到登录页面。相反,我想返回带有错误的 JSON 响应。如何实现?

【问题讨论】:

  • 您好,您可以显示您的路线文件吗?

标签: laravel laravel-5 laravel-5.2 laravel-middleware


【解决方案1】:

改变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);
}

【讨论】:

    【解决方案2】:

    您应该检查apiauth:api 中间件组并寻找女巫正在这样做。如果它位于供应商包中,则需要对其进行扩展并进行更改。

    【讨论】:

    • 请举个例子,以便更好地去破坏
    猜你喜欢
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 2017-02-24
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    相关资源
    最近更新 更多