php - Laravel API 返回不同模型用户

标签 php laravel api laravel-5.4 laravel-passport

我有 2 个模型 AdminUser 我可以通过修改 UserRepository 为这两个模型授予 access_tokenPasswordGrant 引用 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/

相关文章:

php - 如何从mysql中按小时存储日期值的表中获取每日总计的平均值和标准偏差?

php - Codeigniter JOIN - 不是唯一的表/别名问题

php - 在PHP/HTML网页中执行多个MySQL查询: only first query runs

php - Laravel 在 session 超时时给出注销错误

python - Django-Rest-Framework POST 对象字段必需

php - Symfony 变量从 Action 传递到 View

php - 我可以使用 Lumen 在中间件中获取当前路线信息吗?

php - Laravel 远程 ssh 很慢

json - 在Flutter中以间隔自动获取Api数据

bash - 无法在 Bash 脚本中的 cURL 命令中使用 PAT 访问 Azure DevOps API