我有一个名为
AuthServiceProvider.php
Run Code Online (Sandbox Code Playgroud)
在Laravel项目的Providers 目录中。
我实际上不明白它是如何工作的以及为什么需要它
谁能详细解释一下吗?
提前致谢。
小智 5
AuthServiceProvider 是 Laravel 用于在系统中进行服务身份验证的默认防护。但如果您需要,您可以为特定情况创建自己的守卫,在这种情况下您将拥有自己的 AuthServiceProvider。例如。在我们制作的一个系统中,客户拥有自己的数据库及其特定的用户表,我们不能使用默认的 Laraver AuthServiceProvider。因为表还有其他字段。所以我们创建了 CustomAuthProvider。它很复杂,但是您需要在 config/auth.php 中声明驱动程序
...
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
'provider' => 'custom' // Our custom driver
],
...
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'custom', // Our custom driver
],
...
],
...
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => Modules\Pickandroll\Entities\User::class,
],
'custom' => [
'driver' => 'pickandrolluser', //Our Custom Auth Provider
'model' => Modules\Pickandroll\Entities\User::class,
]
],
Run Code Online (Sandbox Code Playgroud)
以及我们注册自定义身份验证提供程序的自定义模块提供程序
public function register()
{
Auth::provider('pickandrolluser', function ($app, array $config) {
return new PickandrollUserProvider($config['model']);
});
}
Run Code Online (Sandbox Code Playgroud)
以及扩展使用 Illuminate\Contracts\Auth\UserProvider 的 PickandrollUserProvider 类;
我知道这很复杂,但也许有助于理解这个主题
| 归档时间: |
|
| 查看次数: |
6457 次 |
| 最近记录: |