首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从支付网关重定向时,Laravel 5会话随机丢失

从支付网关重定向时,Laravel 5会话随机丢失
EN

Stack Overflow用户
提问于 2022-08-25 15:19:52
回答 1查看 96关注 0票数 0

我的回调有个奇怪的问题。我有一条路线,由一个支付提供商打回来,有几件奇怪的事情正在发生。

在另一个服务器上的同一个应用程序没有这些问题。我进行了迁移,所有参数都是相同的,因此Laravel和Php的配置是相同的,但仍然是随机的,有些客户在被提供者重定向时没有会话。

我设法在没有会话的情况下处理回调,直到找出问题的原因,但奇怪的是,一些通过邮件发送的刀片/ pdf的翻译也显示为密钥,而不是它们的价值。

我尝试过使用session.php配置来处理samesite、生存期等问题,尽管之前的服务器没有给我任何这些问题,值相同;但是没有什么帮助。

还有一件事我还没有尝试过,那就是将web中间件设置到这个路径上,但正如我所说的,我正在尝试操纵从未出现问题的东西。

php.ini

代码语言:javascript
复制
Session Support => enabled
session.auto_start => Off => Off
session.cache_expire => 180 => 180
session.cache_limiter => nocache => nocache
session.cookie_domain => no value => no value
session.cookie_httponly => no value => no value
session.cookie_lifetime => 0 => 0
session.cookie_path => / => /
session.cookie_samesite => no value => no value
session.cookie_secure => 0 => 0
session.gc_divisor => 1000 => 1000
session.gc_maxlifetime => 1440 => 1440
session.gc_probability => 0 => 0
session.lazy_write => On => On
session.name => PHPSESSID => PHPSESSID
session.referer_check => no value => no value
session.save_handler => files => files
session.save_path => /var/lib/php/sessions => /var/lib/php/sessions
session.serialize_handler => php => php
session.sid_bits_per_character => 5 => 5
session.sid_length => 26 => 26
session.upload_progress.cleanup => On => On
session.upload_progress.enabled => On => On
session.upload_progress.freq => 1% => 1%
session.upload_progress.min_freq => 1 => 1
session.upload_progress.name => PHP_SESSION_UPLOAD_PROGRESS => PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix => upload_progress_ => upload_progress_
session.use_cookies => 1 => 1
session.use_only_cookies => 1 => 1
session.use_strict_mode => 0 => 0
session.use_trans_sid => 0 => 0
session.trans_sid_hosts => no value => no value
session.trans_sid_tags => a=href,area=href,frame=src,form= => a=href,area=href,frame=src,form=
XDG_SESSION_TYPE => tty
XDG_SESSION_CLASS => user
XDG_SESSION_ID => 4663
DBUS_SESSION_BUS_ADDRESS => unix:path=/run/user/1000/bus
$_SERVER['XDG_SESSION_TYPE'] => tty
$_SERVER['XDG_SESSION_CLASS'] => user
$_SERVER['XDG_SESSION_ID'] => 4663
$_SERVER['DBUS_SESSION_BUS_ADDRESS'] => unix:path=/run/user/1000/bus

config/session.php

代码语言:javascript
复制
...
'driver' => 'file',
'lifetime' => 1200,
'path' => '/',
'secure' => false,
'samesite' => null,
'expire_on_close' => false, 

这是什么原因?我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2022-08-27 15:16:56

为了完成可靠的通信,而不依赖于查找或理解(会话),就像有那么多事情可能或将来有一天会发生的那样;我以不同的方式处理了这一问题,但在生产中采用了第三种方法,即当我在比较平静的水域时切换到第二种。

confirmation route

  • 设置了一些中间件,它将要求用户登录,然后重定向到该

  1. 设置了另一个预着陆页面,其中客户确认操作,然后从您的页面重定向到confirmation route,会话将再次附加

  1. 在不涉及用户交互的情况下在内部解决这个问题:当提供者调用confirmation route时,使用一些预交换散列密钥,这样当您被召回时,您可以使用这些密钥来查找连接到该付款的用户,登录该用户并设置您通常需要的会话数据,以便confirmation route工作。secure

必须是通信

我学到的最重要的规则是:

绝不会期望支付提供商不会破坏您的会话

希望这些能帮到别人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73490074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档