Yii2 错误请求 400 - 无法从另一个域上的 iframe 登录
Yii2 Bad Request 400 - Unable to login from iframe on another domain
我在 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
任何帮助将不胜感激
这是我的问题的答案,我解决了问题
- 将 PHP 版本更改为 >7.3
- 进入基本应用程序 config/web.php 或 config/main.php
- 添加:
'httpOnly' => true, 'secure' => true, 'samesite' => 'None'
在请求块的 _csrf 参数和用户块中的 _identity cookie
如果站点位于 domain1.com[=11= 中的 iframe 中,您将能够使用这两个域上的相同会话登录到 domain1.com 和 domain2.com ]
对于 PHP 版本 < 7.3,更新 main.php 配置文件并将变量路径中的 sameSite 的值设置为 None as
- 饼干
identityCookie' => [
'name' => 'your_cookie_name',
'httpOnly' => true
'path' => '/;SameSite=None',
'secure' => true
]
- session-cookie
'cookieParams' => [
'lifetime' => time()*60,
'httpOnly' => true,
'secure'=>true,
'path' => '/;SameSite=None'
]
注:
- 您可能需要通过更新值来编辑文件:yii\web\Cookie
$path from '/' to '/;SameSite=None'.
- PHP 7.3和YII 2.0.21自带SameSite with 3的解决方案
值 Lax、Strict 和 None。单击 here to know more。
我在 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任何帮助将不胜感激
这是我的问题的答案,我解决了问题
- 将 PHP 版本更改为 >7.3
- 进入基本应用程序 config/web.php 或 config/main.php
- 添加:
'httpOnly' => true, 'secure' => true, 'samesite' => 'None'
在请求块的 _csrf 参数和用户块中的 _identity cookie
如果站点位于 domain1.com[=11= 中的 iframe 中,您将能够使用这两个域上的相同会话登录到 domain1.com 和 domain2.com ]
对于 PHP 版本 < 7.3,更新 main.php 配置文件并将变量路径中的 sameSite 的值设置为 None as
- 饼干
identityCookie' => [
'name' => 'your_cookie_name',
'httpOnly' => true
'path' => '/;SameSite=None',
'secure' => true
]
- session-cookie
'cookieParams' => [
'lifetime' => time()*60,
'httpOnly' => true,
'secure'=>true,
'path' => '/;SameSite=None'
]
注:
- 您可能需要通过更新值来编辑文件:yii\web\Cookie $path from '/' to '/;SameSite=None'.
- PHP 7.3和YII 2.0.21自带SameSite with 3的解决方案 值 Lax、Strict 和 None。单击 here to know more。