在带有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
答案 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