无法获得具有laravel通行证的身份验证用户,不断出现“未经身份验证”错误

时间:2019-04-06 06:02:11

标签: laravel authentication vuejs2 jwt

在带有JWT和vue的Laravel护照应用中,我无法获得经过身份验证的用户的信息。

我已经安装了laravel护照。我已经完成了文档中的所有操作并添加了:

\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,

要通过js将其用于SPA应用程序。

我已经使用auth:api中间件保护了我的路线,但是我不断得到:

{"Status":{"api_status":0,"Code":401,"Message":"Unauthenticated"}}

当我使用邮递员将CSRF-TOKEN手动插入授权承载令牌中时。它确实给了我auth用户。

无论我做什么,我都会在Auth :: user()上保持为空;在我的控制器和路线中

Laravel V5.7 节点V10.15.3 Npm V.6.9.0

1 个答案:

答案 0 :(得分:0)

您需要发送POST请求(使用Postman / Insomnia),其中包含您要登录的用户的详细信息,以及/ oauth / token在您的应用程序中的使用API​​令牌进行响应。您将此api令牌保存在本地,然后将其作为Header变量添加到您的guzzle / axios /无论函数的http调用(其中每个都是!)到您的API。

$http = new GuzzleHttp\Client;
$data = 'Whatever';
$response = $http->request('POST','api/user',[
    'data' => $data,
    'headers' => [
        'Accept' => 'application/json',
        'Authorization' => 'Bearer xxxxxxxxxxxxThis is the long authentication string returned from the Postman requestxxxxxxxxxxxxxx'
    ]
]);
dd(json_decode((string) $response->getBody())); // To view the response

发件人:https://laravel.com/docs/5.5/passport#creating-a-password-grant-client