首页 > 解决方案 > Yii2 错误请求 400 - 无法从另一个域的 iframe 登录

问题描述

我在 domain1.com 上使用 iframe 而 yii2 网络应用程序在 domain2.com

我已经在 domain1.com 的 iframe 的 src 中传递了 domain.com url,并在 yii2 Access-Control-Allow-Origin: * 中使用它来启用 cors

我可以在 domain2.com 上登录,但如果我尝试通过 domain1.com 上的 iframe 登录,它会抛出错误的请求 400 错误

任何帮助将非常感激

标签: iframeyii2cross-domaincsrfcsrf-token

解决方案


这是我的问题的答案,我解决了问题

  • 将 PHP 版本更改为 >7.3
  • 进入基本应用程序的 config/web.php 或 config/main.php
  • 添加:'httpOnly' => true, 'secure' => true, 'samesite' => 'None' 在请求块的 _csrf 参数和用户块中的 _identity cookie

如果站点位于 domain1.com 的 iframe 中,则使用此功能,您将能够在两个域上使用相同的会话登录 domain1.com 和 domain2.com


推荐阅读