Laravel - Passport API 集成 | 错误:{"message":"未经身份验证。"}

Jch*_*han 6 php laravel-5 laravel-passport

我是新手Laravel。我刚刚开始Laravel使用此参考链接学习护照集成。

下面是我的路由文件 api.php

Route::post('login', 'API\PassportController@login'); // this is working fine
Route::post('register', 'API\PassportController@register'); // this is working fine
Route::group(['middleware' => 'auth:api'], function(){
   Route::post('get-details' , 'API\PassportController@getDetails'); // This is giving me error
});
Run Code Online (Sandbox Code Playgroud)

PassportController.php >> getDetails() 功能代码,

/**
 * details api
 *
 * @return \Illuminate\Http\Response
 */
public function getDetails()
{
    $user = Auth::user();
    return response()->json(['success' => $user], $this->successStatus);
}
Run Code Online (Sandbox Code Playgroud)

config/auth.php

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],
Run Code Online (Sandbox Code Playgroud)

我已经更新了文章中提到的其余文件。

注册和登录 API 工作正常,但是当我尝试运行/get-detailsapi 时,我得到{"message":"Unauthenticated."}了响应。

在标题中,我传递如下值, 在此处输入图片说明

奇怪的是,相同的代码在我的本地主机服务器(OS-Windows)上运行良好,但是当我在我的托管服务器(OS-ubuntu)上运行此 API 时,它不起作用。

有人能帮我解决这个问题吗?这与服务器配置设置有关吗?我什至无法调试这段代码来检查我哪里做错了。

提前致谢!!

小智 1

您是否在标头中传递了 api 令牌?如果没有,首先您必须将登录详细信息传递给 api 并获取 api 令牌。然后将此令牌传递给您尝试访问的请求。另一种可能性是,如果您的环境从本地更改为实时,您需要再次运行 Passport 安装命令