💡
原文中文,约700字,阅读约需2分钟。
📝
内容提要
Laravel缓存guards,需要在每次请求前使用Auth::forgetGuards()重置。自定义Guard中通过$this->request->attributes->add(['company' => $company])将变量写入请求中。功能测试中发现只有第一个身份的请求正常,后续身份无法获取company的值。通过auth()->forgetGuards()解决问题。
🎯
关键要点
-
Laravel会缓存guards,需要在每次请求前使用Auth::forgetGuards()重置。
-
自定义Guard中通过$this->request->attributes->add(['company' => $company])将变量写入请求中。
-
功能测试中发现只有第一个身份的请求正常,后续身份无法获取company的值。
-
通过打印 equest()返回的对象句柄id发现它们不是同一个对象。
-
找到解决方案:auth()->forgetGuards(),可以解决后续请求无法通过guard的问题。
➡️