2017-07-04 1 views
1

J'ai 2 modèles Admin et User je suis en mesure d'accorder access_token pour les deux modèles en modifiant UserRepository et PasswordGrant en se référant https://github.com/laravel/passport/issues/161API Laravel retour différent utilisateur modèle

tout va bien dans l'octroi access_token mais quand demande les détails de l'utilisateur Je reçois les détails pour le modèle User.

{ 
    "id": 2, 
    "name": "App User", 
    "email": "[email protected]", 
    "created_at": "2017-07-04 10:01:52", 
    "updated_at": "2017-07-04 10:01:52" 
} 

//but i should be getting the user details of `admin` model 
{ 
    "id": 1, 
    "name": "Admin", 
    "email": "[email protected]", 
    "created_at": "2017-07-04 10:01:52", 
    "updated_at": "2017-07-04 10:01:52" 
} 

je suppose que lorsque vous demandez l'user fait référence à User modèle et non le modèle Admin

mon auth.php

'guards' => [ 
    'web' => [ 
     'driver' => 'session', 
     'provider' => 'users', 
    ], 

    'api' => [ 
     'driver' => 'passport', 
     'provider' => 'users', 
    ], 

    'admin' => [ 
     'driver' => 'passport', 
     'provider' => 'admins', 
    ], 
], 


'providers' => [ 
    'users' => [ 
     'driver' => 'eloquent', 
     'model' => App\User::class, 
    ], 

    'admins' => [ 
     'driver' => 'eloquent', 
     'model' => App\Admin::class, 
    ], 
], 

je suis juste retour l'utilisateur dans mon routes/api.php itinéraire

Route::middleware('auth:api')->get('/user', function (Request $request) { 
    return $request->user(); 
}); 

avec impatience pour beaucoup besoin d'aide

merci

+0

Comment accéder aux données de l'utilisateur de la demande? Avez-vous considéré que vous faites une requête dans le contexte du middleware web où votre session utilisateur est toujours valide? –

+0

@Frank Provost merci pour votre temps vraiment l'apprécier, je travaille sur 'api' ce n'est pas un site Web juste' api' pour les applications frontales –

+0

alors pouvez-vous fournir l'exemple de code de l'endroit où vous accédez à l'utilisateur et où il renvoie le mauvais? –

Répondre

1

Par défaut Laravel utilise la garde Web. Vous pouvez utiliser la garde api comme

\Auth::guard('api')->user() 

Pour accéder à l'utilisateur