从支付网关重定向后,CodeIgniter会话丢失

cl25kdpy  于 2022-12-25  发布在  其他
关注(0)|答案(1)|浏览(149)

bounty将在7天后过期。回答此问题可获得+50的声誉奖励。Nishant Solanki正在寻找来自声誉良好来源的答案

我正在使用CI版本3.1.13和PHP 7.4.33来开发我的webapp。我正在使用CyberSource支付网关进行在线支付,但当用户从CyberSource重定向回webapp时,会话丢失。
以下是流程
用户登录=〉选择包=〉输入信用卡详细信息(POST数据到CyberSource)=〉从CyberSource POST数据重定向回来(现在用户登录会话丢失,用户由于丢失会话而被重定向回登录页面)

我过去曾两次遇到此问题,但无法找到任何有前途的解决方案,不得不应用自定义修补程序来解决此问题(将序列化会话数组保存到临时数据库表中,如果会话丢失,则从临时表中检索会话数组)

以下是我到目前为止尝试过的,但没有任何适当的解决方案

  • https://stackoverflow.com/a/50792059/1835912Go to system/libraries/Session/session.php at Line no 281 and replace ini_set('session.name', $params['cookie_name']); by ini_set('session.id', $params['cookie_name']);这解决了FireFox中的问题,但不能解决Chrome中的问题
  • https://stackoverflow.com/a/66354648/1835912You should use SameSite=None on your cookies attributes. Also if you use SameSite=None you should set the secure cookies attribute as well.
  • $config['cookie_secure'] = FALSE; // if is not under https, or true if you use https
  • $config['cookie_path'] = '/;SameSite=None';$config['cookie_secure'] = TRUE;
  • 尝试将PHP版本更改为7.1、7.2、7.3和8.1(所有这些版本都存在相同问题)
  • 我的Web应用程序在安全协议HTTPS上运行,网络源返回URL也有HTTPS
  • 遵循这一步一步youtube视频:https://www.youtube.com/watch?v=j6jBxlrhTY4

有没有人知道任何适当的解决办法,提前感谢!

6bc51xsx

6bc51xsx1#

我的帮助。
在我的例子中,它与PHP版本或上述解决方案无关。
cookies是通过Set-Cookie头设置的,当用户从支付网关重定向到我的网站时,没有Set-Cookie,所以我无法验证用户或访问任何其他cookie,所以我不得不允许未经验证的用户访问支付结果页面。
我所做的是显示付款结果页面包含一个链接访问付款详细信息页面给用户,用户重定向后,从付款结果页面到付款详细信息页面(与链接或自动),我可以访问cookie和授权用户。

相关问题