nan*_*eri 1 php authentication laravel
我的 Laravel 项目有一个奇怪的问题。找不到,当它第一次启动时 - 我只能登录/注销在隐身选项卡中打开应用程序。在普通选项卡中,当我已经登录并且删除存储中的会话信息后,它不会将我注销。
我SESSION_DOMAIN之前在 env 中设置了一个,但我遇到了另一个问题,无法在www.*子域上使用 Laravel Socialite 登录。后来我删除了该SESSION_DOMAIN属性,因为它没有解决问题。
经过一番研究,我发现:
出现问题是因为我SESSION_DOMAIN在.env文件中设置了 和。当我在本地环境登录期间这样做时,即使我在隐身选项卡中也会出现问题。虽然我可以删除然后再次重新加载隐身页面,但隐身选项卡的问题消失了。
我没有使用 Laravel,所以可能不完全理解 SESSION_DOMAIN 应该如何在那里工作,但问题似乎是由于在更高域上设置了 cookie。
例如,您的代码适用于域“sales.domain.com”。当您在 Laravel 中创建会话时,它会放置一个对该域有效的 cookie。然后可以使用相同的“设置 cookie”请求删除它,但使用过去的日期。这是它通常的工作方式。
但是,如果某人(可能是您的代码)前一段时间也设置了一个同名的 cookie,但在所有子域或“.domain.com”上都有效,则无法通过“设置 cookie”请求将其从 ' 中删除sales.domain.com'。
要检查这一点,请在向“sales.domain.com”和“domain.com”发出请求时使用 Firebug 或 Chrome 开发工具查看请求标头。请注意“Cookie”标题。如果两个请求中都存在相同的 cookie,这证实了我的猜测。您可以通过清除浏览器中的 cookie 来解决此问题。
另见https://en.wikipedia.org/wiki/HTTP_cookie#Domain_and_Path
| 归档时间: |
|
| 查看次数: |
2297 次 |
| 最近记录: |