Using passport
on Laravel 6
and it work fine with users
now I want to set passport
for admins
I called agents here. So I did in this way (based on this):
Route::middleware('auth:agent')->group(function () {
Controller:
return Auth::guard('agent')->user();
And auth.php:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
'hash' => false,
],
'agent' => [
'driver' => 'passport',
'provider' => 'agents',
],
],
...
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'agents' => [
'driver' => 'eloquent',
'model' => App\Agent::class,
],
],
So I logged as user, and set api token and run this:
$user = Auth::user();
return response()->json(['success' => $user], $this-> successStatus);
This return me user details and working fine then I logged as admin with same token, and run:
return Auth::guard('agent')->user();
It return me agent details too! with same api_token
that I used for users
. I tested all with postman
. It should not retrun agent details with users token, also on the contrary.