2017-09-24 65 views
0

我已经安装了Laravel 5.5并安装了默认的身份验证脚手架。为什么Laravel认证需要'网络'后卫?

我的应用程序有两种类型的用户 - 客户和工作人员 - 所以我更愿意以这种方式命名身份验证防护,并且以下配置似乎可行。

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

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

问题是我想删除'网络'守卫,因为它只是混乱配置文件。然而,当我这样做的时候,我在Laravel中间件的某处发现了一个异常。

我当然可以忍受额外的混乱,但它确实让我感到困扰,Laravel依赖于一个我无法改变的配置项目。也许这是一个Laravel错误?

顺便说一句 - 我没有“网络”设置为默认的后卫时,我得到的错误...

回答

0

默认情况下网络后卫由laravel基于session驱动程序与用于web认证给出表users。现在你已经创建了自己的定制警卫,并且正在使用它。所以你希望保持web guard。但是如果你删除了,你可能会遇到一些内部问题,所以最好保留它,这也不会成为性能问题。