Php 如何使用Passport获取LaravelAPI中的当前用户?
我正在使用passport包进行Laravel API身份验证。当我发布数据时,我得到错误信息: 401未经授权,“错误”:{“错误”:“未经验证”。} 我使用Php 如何使用Passport获取LaravelAPI中的当前用户?,php,laravel,laravel-5.5,laravel-passport,Php,Laravel,Laravel 5.5,Laravel Passport,我正在使用passport包进行Laravel API身份验证。当我发布数据时,我得到错误信息: 401未经授权,“错误”:{“错误”:“未经验证”。} 我使用Auth::user()->id;获取当前用户id 如何解决此错误?此代码帮助我: auth()->guard('api')->user() 对于短线语法,您可以使用如下内容: auth('api')->user() 在函数体中使用auth::user()->id时,最简单的格式是auth('api')->user(
Auth::user()->id;
获取当前用户id
如何解决此错误?此代码帮助我:
auth()->guard('api')->user()
对于短线语法,您可以使用如下内容:
auth('api')->user()
在函数体中使用auth::user()->id时,最简单的格式是
auth('api')->user();
。您以前没有登录过。
请先调用登录api以获取令牌,然后将其设置为下一个api调用。您可以使用passport在laravel api中获取当前用户,如下所示:
Route::get('/user', function (Request $request) {
return $request->user();
});
$response = $client->request('GET', '/api/logout', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.$accessToken,
],
]);
但是您得到了401错误
,这意味着您没有在授权标头中传递access\u令牌,或者您的access\u令牌已过期,因此您必须刷新令牌
您必须在成功登录后获得的Authorization
标题中传递access\u令牌
您的用户路由受passport保护,因此在调用受passport保护的路由时,应用程序的API使用者应在其请求的授权标头中将其访问令牌指定为承载令牌
例如,使用Guzzle HTTP库时,您可以按如下方式传递它:
Route::get('/user', function (Request $request) {
return $request->user();
});
$response = $client->request('GET', '/api/logout', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.$accessToken,
],
]);
从文档中,您需要遵循几个步骤并确保它们都是正确的
authorization:Bearer xxx token here xxx
Route::group(['prefix' => 'v1', 'middleware' => 'auth:api'], function()
{
Route::get("articles","ArticleController@read");
Route::post("articles","ArticleController@create");
});
此外,您还可以使用:
$user = Auth::guard('api')->user();
Try:
Route::get('/user',函数(Request$Request){return$Request->user();})
对于受身份验证保护的路由,您需要将访问令牌作为Authorization:Bearer
传递到头中。您这样做了吗?@Karthik我已经发布了我的答案,如果它有助于您接受并投票的话!@Karthik,找到您的解决方案了吗?如何调用登录api?以及如何访问令牌?