如何解决Google chrome版本84.0.4147.125官方内部版本64位从第三方重定向回调函数时销毁了应用程序会话
//在使用第三方网关托管表单之前创建会话
public function ezi_test() {
if (isset($_SESSION['form_data'])) {
unset($_SESSION['form_data']);
}
$this->common->maintain_log(array('collection_type'=>3,'org_id'=>'','log_path'=>'gateway_log/ezidebit/hosted_payment_formdata_creation_bef','log_data'=>json_encode($_REQUEST)));
parse_str($_REQUEST['data1'],$_REQUEST);
$_SESSION['paynow']['tnc']['email_id'] = isset($_REQUEST['email_id']) ? $_REQUEST['email_id'] : '';
$this->common->maintain_log(array('collection_type'=>3,'log_path'=>'gateway_log/ezidebit/hosted_payment_formdata_creation','log_data'=>json_encode($_REQUEST)));
$_SESSION['form_data'] = $_REQUEST
}
//检索有关第三方回调的会话 公共功能ezi_hosted_payment(){
if (isset($_SESSION['ezi_hosted'])) {
unset($_SESSION['ezi_hosted']);
}
if (isset($_SESSION['form_data'])) {
$form_data = $_SESSION['form_data'];
unset($_SESSION['form_data']);
}
$this->common->maintain_log(array('collection_type'=>3,'log_path'=>'gateway_log/ezidebit/hosted_payment_log','log_data'=>json_encode($_REQUEST)));
$this->common->maintain_log(array('collection_type'=>3,'log_path'=>'gateway_log/ezidebit/hosted_payment_formdata','log_data'=>json_encode($form_data)));
$final = array_merge($_REQUEST,$form_data);
$_SESSION['pg_response'] = $_REQUEST;
$this->ezi_gateway_paynow_sub($final);
}
解决方法
与ASP.NET Core 3.1和HTTP(非HTTPS)中的开放ID身份验证存在相同的问题。
可以复制:对于更新版本84.0.4147.125(Offizieller Build)(64位),请始终重定向到登录页面。在其他浏览器上(例如边缘铬版本84.0.522.58(Offizielles Build)(64位))可以正常工作。
我读了一些有关它的文章(德语) https://www.heise.de/news/Chrome-84-Google-verlangt-SameSite-Attribut-und-HTTPS-4844124.html
[更新] 找到了一个临时解决方案:chrome:// flags / 设置:默认情况下,SameSite Cookies 将未指定SameSite属性的cookie视为SameSite = Lax。网站必须指定SameSite = None才能启用第三方使用。 – Mac,Windows,Linux,Chrome操作系统,Android
设置为禁用。
更好的解决方案是在cookie中设置samesite属性并启用https ...
猜猜是原因。
,我找到了.net core 3.2的一些解决方案: 设置
services.AddAuthentication
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,options =>
{
options.Cookie.SameSite = SameSiteMode.None;
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
})
设置IDp
options.NonceCookie.SecurePolicy = CookieSecurePolicy.Always;
options.CorrelationCookie.SecurePolicy = CookieSecurePolicy.Always;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。