【问题标题】:laravel website session not working in iframelaravel 网站会话在 iframe 中不起作用
【发布时间】:2026-02-04 12:50:01
【问题描述】:

下面是我在 iframe 中的 laravel 网站。通过令牌,我们验证用户并将其重定向到仪表板页面。

<iframe src="http://localhost/laravel-web-app/public/logincheck/f0c1bc3c965f5c59946f4bb49c2d7ccd01ab12e1035ea3c96d7dcc59b29e2d7d" style="width:100%; height: 100%;">

但用户的重定向会话数据不起作用。我试图改变 config/session.php

'same_site' => 'none' 

但实际的 laravel 网站显示页面已过期。有人可以帮助在 iframe 中进行会话管理吗?

我也浏览了这个网址,但它不起作用:Laravel 7 session break on IFRAME in a different domain

【问题讨论】:

  • Iframed where,在不同的来源?然后这些 cookie 将被视为“第 3 方”,因此它们可能会被浏览器设置/隐私增强扩展程序阻止。
  • 在将 same_site 更改为 none 后,您是否尝试使用 artisan 命令清除所有 laravel 缓存?
  • @cbre :是的,它是一个不同的域。通过浏览器设置/隐私增强扩展我应该怎么做?
  • @mbesson:我已经运行了 php artisan cache:clear,登录后抛出 419 Page Expired
  • 用 F12 打开开发者控制台并检查网络选项卡是否加载了 iframe 并转到 Cookies,它应该说明未发送会话 cookie 的原因

标签: php laravel


【解决方案1】:

这是使会话在 iframe 中工作的解决方案。 在你的 laravel 项目的 config/session.php 文件中

'secure' => env('SESSION_SECURE_COOKIE',true),
'same_site' => 'none',

此更改使您的会话在 iframe 中运行,并且还使同一会话在 iframe 之外运行。

【讨论】:

  • 谢谢!我花了 2 天时间寻找解决方案,而“SESSION_SECURE_COOKIE”是我所缺少的。
  • 谢谢!像魅力一样工作