likes
comments
collection
share

解决PHP套用Iframe访问导致cookie跨域session失效

作者站长头像
站长
· 阅读数 17

问题

在项目A中使用iframe标签访问项目B,项目B的登录状态基于session机制,导致项目B无法登录。 一顿操作各种查询问题,定位问题在于cookie跨域失效。

解决

  1. 在项目B的session_start()之前,设置header的P3P值,并设置cookie的samesite属性:
// IE浏览器cookie跨域
header("P3P:CP=CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV");

// Chrome等浏览器cookie跨域(一定要加上secure,否则SameSite无效)
ini_set('session.cookie_samesite', "None;secure");
  1. 将项目B的session存储方式改为redis。

参考资料

blog.csdn.net/weixin_3986… blog.csdn.net/backerli/ar…

偶然间看到FastAdmin也有此问题的解决方案,更加详细,传送门:doc.fastadmin.net/developer/f…

转载自:https://juejin.cn/post/7123652955282079751
评论
请登录