💡 原文中文,约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的问题。

➡️

继续阅读