I am using passport package for Laravel API Authentication. When I post data I get error:
401 Unauthorized","error":{"error":"Unauthenticated."}.
I use Auth::user()->id;
to get current user id.
How to solve this error?
This code helped me:
auth()->guard('api')->user()
for shortline syntax you can use something like this:
auth('api')->user()
You can get current user in laravel api using passport as below:
Route::get('/user', function (Request $request) {
return $request->user();
});
but you are getting 401 Error
that means either you are not passing access_token in Authorization header or your access_token has expired so you have to refresh the token,
You have to pass access_token
in Authorization
header which you have got after successfully logged in.
Your user route is protected by passport so When calling routes that are protected by Passport, your application's API consumers should specify their access token as a Bearer token in the Authorization header of their request.
For example, when using the Guzzle HTTP library you can pass it as below:
$response = $client->request('GET', '/api/logout', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.$accessToken,
],
]);
from the doc laravel passport passing access token
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With