You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Passport:如何为应用自定义用户提供者的认证守卫

Laravel Auth Provider 是什么?以及你的配置疑问解答

什么是 Provider?

Laravel 里的 认证提供者(Provider) 就是负责从数据库这类数据源里拉取用户信息、处理身份验证逻辑的组件。简单说,它告诉 Laravel:用哪个模型、哪种方式去验证用户身份、获取用户数据。

默认的 'provider' => 'users' 对应 config/auth.php 里 providers 数组下的 users 配置项,它指定用 App\Models\User 模型配合 Eloquent 驱动来处理认证。

是否要替换成 'provider' => 'citizen'?

要看你的实际需求:

  • 如果你的项目里所有需要 Passport 认证的 API,都是用 Citizen 模型来做用户身份验证,那确实要替换,但得先做一步前置配置:
    在 config/auth.php 的 providers 数组里添加 citizen 提供者:
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],
        // 新增这一段
        'citizen' => [
            'driver' => 'eloquent',
            'model' => App\Models\Citizen::class,
        ],
    ],
    
    之后再把 api 守卫里的 provider 改成 citizen 就行。
  • 如果只是部分 API 用 Citizen 做认证,那可以单独新建一个守卫(比如叫 citizen-api),指定它的 driver 为 passport、provider 为 citizen,然后给对应路由设置这个守卫即可,不用修改默认的 api 守卫。

内容的提问来源于stack exchange,提问作者Julián Oviedo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 23:45:42