如何解决Cookie在外部站点发布表单期间未发送到服务器
所以我们正在使用Spring Boot,并且正在与外部支付站点集成,其步骤如下:
- 用户登录到我们的网站(www.oururl.com,使用示例SESSIONID = 310B9DDC8FC85F1358262D40784C5D5C生成的会话)
- 用户想要执行一项操作,例如付款。
- 我们将用户重定向到www.makepayment.com(并在参数中告诉他们在完成时重定向到www.oururl.com/paymentdone)
- 用户在www.makepayment.com中完成的操作,并且该站点的最后一页具有html表单,该表单可以POST到www.oururl.com/paymentdone,如果发生这种情况,会话将丢失,我们不再拥有用户信息会话中。
经过长时间的故障排除,我们发现这仅在Chrome中发生,该流程在Edge中工作正常,因为Edge会在检查期间在cookie中发送sessionId,而在调用www.oururl.com/paymentdone时,Chrome不会在以下位置发送SESSIONID = 310B9DDC8FC85F1358262D40784C5D5C Cookie,因此Spring Boot服务器将其视为新会话,因此用户信息将会丢失。
我们研究了这个cookie主题,发现类似设置same-site = Lax可能解决了问题,但没有解决。
有人知道解决方案吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。