2017-07-04 24 views
1

我有2種型號AdminUser我能夠通過修改UserRepositoryPasswordGrant在授予access_tokenhttps://github.com/laravel/passport/issues/161Laravel API返回不同型號的用戶

每一件事情是罰款授予access_token兩個模型,但是當請求的用戶的詳細信息 http://localhost:8000/api/user我收到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" 
} 

我想請求user指的是User模型不是Admin模型時

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, 
    ], 
], 

我只是在用戶在我routes/api.php路線

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

期待着急需幫助

謝謝

+0

如何從請求訪問用戶數據的用戶?您是否認爲您在用戶會話仍然有效的Web中間件上下文中執行請求? –

+0

@Frank Provost感謝您的時間真的很感激它,我正在研究'api'它不是一個只適用於前端應用程序的'api'網站 –

+0

因此您可以提供您訪問相關用戶的代碼示例以及它返回錯誤的地方? –

回答

1

默認laravel使用Web後衛。您可以使用API​​後衛像

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

要訪問