为什么Laravel身份验证需要“网络”保护?

时间:2017-09-24 23:03:56

标签: authentication laravel-5

我已经设置了Laravel 5.5并安装了默认的身份验证脚手架。

我的应用程序有两种类型的用户 - 客户和员工 - 所以我更喜欢用这种方式命名身份验证保护,并且以下配置似乎有效。

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'customers' => [
        'driver' => 'session',
        'provider' => 'customer-users',
    ],
    'staff' => [
        'driver' => 'session',
        'provider' => 'staff-users',
    ],
    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],

我的提供商,客户用户和员工用户使用标准的雄辩驱动程序,但他们每个都返回不同的用户类型。

问题在于我想删除'web'防护,因为它只是混乱了配置文件。然而,当我这样做时,我在Laravel中间件的某个地方得到了一个例外。

当然,我可以忍受更多的混乱,但是Laravel依赖于我无法改变的配置项确实让我感到困扰。这可能是一个Laravel的错误吗?

BTW - 当我收到错误时,我没有将'web'设置为默认保护......

1 个答案:

答案 0 :(得分:1)

默认情况下,由laravel提供的 web 保护,用于基于"-"驱动程序和表session的Web身份验证。现在您已经创建了自己的自定义防护,并且您正在使用它。所以你希望保留users。但如果你删除,你可能会面临一些内部问题,所以最好保留它,它也不会成为性能问题。