Laravel Passport:错误的令牌JSON响应

问题描述 投票:0回答:1

我正在使用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。

如何解决这种情况?

php laravel http-status-codes
1个回答
0
投票

如果您未在受保护路由中提供有效令牌laravel识别为未授权,并且如果您在没有定义Accept标头的情况下请求它,则它将重定向到登录页面,如果您将Accept标头定义为json,它将使用Unauthenticated消息响应401状态。

因此,它在您的请求标头中添加Accept:application/json的解决方案。

axios(javascript)的例子

axios({
  method: "GET",
  url: "api/user",
  headers: { Accept: "application/json" }
});
© www.soinside.com 2019 - 2024. All rights reserved.