How can I resolve this?
Route::get('/user/auth', function() {
return Auth::user();
})->middleware('auth:api');
Headers:
Authorization: Baerer xxxx
Accept: application/json
in Builder.php line 2443
at Builder->__call('withAccessToken', array(object(Token))) in Builder.php line 1252
at Builder->withAccessToken(object(Token)) in Builder.php line 1252
at Builder->__call('withAccessToken', array(object(Token))) in Model.php line 1329
at Builder->withAccessToken(object(Token)) in Model.php line 1329
at Model->__call('withAccessToken', array(object(Token))) in TokenGuard.php line 139
at User->withAccessToken(object(Token)) in TokenGuard.php line 139
at TokenGuard->authenticateViaBearerToken(object(Request)) in TokenGuard.php line 90
at TokenGuard->user(object(Request)) in PassportServiceProvider.php line 251
at PassportServiceProvider->Laravel\Passport\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in RequestGuard.php line 55
at RequestGuard->user() in GuardHelpers.php line 49
at RequestGuard->check() in Authenticate.php line 61
at Authenticate->authenticate(array('api')) in Authenticate.php line 41
at Authenticate->handle(object(Request), object(Closure), 'api') in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ThrottleRequests.php line 49
at ThrottleRequests->handle(object(Request), object(Closure), '60', '1') in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Router.php line 561
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 520
at Router->dispatchToRoute(object(Request)) in Router.php line 498
at Router->dispatch(object(Request)) in Kernel.php line 174
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CreateFreshApiToken.php line 49
at CreateFreshApiToken->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in HandleCors.php line 36
at HandleCors->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in TransformsRequest.php line 30
at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in TransformsRequest.php line 30
at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ValidatePostSize.php line 27
at ValidatePostSize->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Kernel.php line 149
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
at Kernel->handle(object(Request)) in index.php line 56
at require_once('/Users/gabrielgelado/repo/bi_rodoweb/public/index.php') in server.php line 21
You need to add the \Laravel\Passport\HasApiTokens trait to your User model.
Closing for lack of activity, hope you got the help you needed :)
I found the correct solution in below link:
https://stackoverflow.com/questions/43318310/how-to-logout-a-user-from-api-using-laravel-passport
which has below solution:
You need to delete the token from the database table oauth_access_tokens you can do that by creating a new model like OauthAccessToken
Run the command php artisan make:model OauthAccessToken to create the model.
Then create a relation between the User model and the new created OauthAccessToken Model , in User.php add :
public function AauthAcessToken(){
return $this->hasMany('\App\OauthAccessToken');
}
in UserController.php , create a new function for logout:
public function logoutApi()
{
if (Auth::check()) {
Auth::user()->AauthAcessToken()->delete();
}
}
In api.php router , create new route :
Route::post('logout','UserController@logoutApi');
Now you can logout by calling posting to URL /api/logout
Although I expected Laravel Auth will handle the token deletion methods.
Most helpful comment
You need to add the
\Laravel\Passport\HasApiTokenstrait to your User model.https://laravel.com/docs/5.4/passport#installation