【问题标题】:Why does Laravel authentication require the 'web' guard?为什么 Laravel 身份验证需要“网络”保护?
【发布时间】:2018-03-05 20:38:19
【问题描述】:

我已经设置了 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',
    ],

我的提供者、客户用户和员工用户使用标准的 eloquent 驱动程序,但它们各自返回不同的用户类型。

问题是我想删除“网络”保护,因为它只是弄乱了配置文件。但是,当我这样做时,我会在 Laravel 中间件深处的某个地方遇到异常。

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

顺便说一句 - 当我收到错误消息时,我没有将“web”设置为默认保护...

【问题讨论】:

  • 我想知道同样的事情,我只是将默认身份验证的路由覆盖到我定义为默认的其他登录页面

标签: authentication laravel-5


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-09-15
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 2017-07-17
    • 1970-01-01
    • 2011-09-29
    相关资源
    最近更新 更多