我有 2 个模型 Admin
和 User
我可以通过修改 UserRepository
为这两个模型授予 access_token
和 PasswordGrant
引用 https://github.com/laravel/passport/issues/161
授予access_token
一切都很好,但是当请求用户详细信息时
http://localhost:8000/api/user
我正在获取 User
模型的用户详细信息。
{
"id": 2,
"name": "App User",
"email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c2a3b2b2b7b1a7b082a5afa3abaeeca1adaf" rel="noreferrer noopener nofollow">[email protected]</a>",
"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": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6001040d090e20070d01090c4e030f0d" rel="noreferrer noopener nofollow">[email protected]</a>",
"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 返回用户
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
期待获得急需的帮助
谢谢
最佳答案
默认情况下,laravel 使用网络防护。您可以使用 api 防护,例如
\Auth::guard('api')->user()
访问用户
关于php - Laravel API 返回不同模型用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44903323/