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
相关产品推荐
相关产品推荐

