Laravel Passport:错误的令牌JSON响应

时间:2019-02-25 04:02:27

标签: php laravel http-status-codes

我正在使用Laravel 5.7 + Passport 7.2

我的API路线如下

// namespace "App\Http\Controllers\Admin"
Route::namespace('Admin\Api')->group(function () {

    // test route
    Route::get('test', function(){
        Return 'hello test';
    })->name('login');

    // unauthorized routes
    Route::post('authorizations', 'Auth\AuthorizationsController@store');

    // authorization routes
    Route::middleware(['auth:api'])->group(function () {

        // User controller
        Route::namespace('Users')->group(function () {
            // get user detail
            Route::get('user', 'UserController@me');
        });

        // Rbac controller
        Route::namespace('Rbac')->group(function () {
            // get tree menu list
            Route::get('menu/select', 'MenuController@select');
        });

    });
});

当我尝试使用错误或空令牌请求/api/user时,我得到了重定向。但是,对于纯API,应该报告诸如401之类的错误:TOKEN错误,而不是302。

如何解决这种情况?

1 个答案:

答案 0 :(得分:0)

如果您在受保护的路线中未提供有效令牌,laravel会被识别为未经授权,并且如果您在未定义Accept标头的情况下请求它,则将您重定向到登录页,如果您定义了{ {1}}标头为json,它将通过未经身份验证消息响应 401 状态。

因此解决方案将Accept添加到您的请求标头中。

带有axios(javascript)的示例

Accept:application/json