我正在使用Laravel 5.5。我配置了许多使用会话驱动程序的身份验证警卫。每个人都有不同的用户提供者。提供者都使用雄辩的驱动程序,但是每个提供者创建不同类型的用户,例如, App\User\Staff
,App\User\Customer
。这是Laravel会话处理不一致的bug吗?
此外,我为每个用户类型设置了子域路由,例如, staff.mydomain.com
,customer.mydomain.com
。今天,我很高兴地发现,如果我在一个子域中登录,则该信息不会与其他域共享(默认情况下为默认值)。这意味着我可以作为工作人员在一个浏览器选项卡上登录,也可以在另一个浏览器选项卡上作为客户登录。
或者至少这是我的想法。
这适用于文件会话驱动程序,但使用数据库驱动程序时无法预知。数据库显示了每个子域的新会话记录,正如我所期望的那样,会话ID在登录时被刷新。虽然我检查了Auth::check()
,但在一个选项卡中显示正确(即登录了一名警卫,其他人登录)。在另一个标签中,它显示了所有警卫的客人。
我尝试了这种来回(文件/数据库会话驱动程序),并且文件驱动程序始终保持一致,并且数据库驱动程序始终如一。这是一个错误?还是有什么我缺少基于会话的身份验证和子域?
也许你没有网络中间件 –