【问题标题】:session lose on bank redirect phalconphp银行重定向 phalcon php 会话丢失
【发布时间】:2021-02-03 02:38:13
【问题描述】:

我有一个用户可以购买东西的网站。付款用户重定向到银行网站 -> 付款 -> 回到网站。

最近用户返回后,他们失去了之前的会话,不得不重新登录!我猜这与版本 +84 之后的 google chrome cookie 政策有关。

我正在使用 phalcon 3.4 并且 cookie 没有 setOptions 函数来使用 sameSite=None 设置函数没有获得 sameSite 选项。

public function set($name, $value = null, $expire = 0, $path = '/', $secure = null, 
                    $domain = null, $httpOnly = null)

并且会话没有使用 PHPSESSID 和 sameSite=None 的设置

我看到了几个解决方法,但没有一个有效。

选项 1:在 htaccess 中设置:Header always edit Set-Cookie ^(.*)$ $1;SameSite=None;Secure

选项 2:为应用程序全局设置此标头:header('SameSite=None; Secure');

PS:我当前的 PHP 版本:7.2,Apache 2.4

q:我是谁开始我的会话? a : 使用di

$di->setShared('session', function (){
    $session = new SessionAdapter();
    $session->start();
    return $session;
});

问:我的网站是否使用 SSL?

一个:是的

q : 中间的所有网站(去银行和重定向)都使用 SSL 吗?

一个:是的

问:有什么问题?

a : 重定向后 Session 为 NULL

谢谢!

【问题讨论】:

标签: php google-chrome cookies phalcon


【解决方案1】:

在其他问题上花了一些时间并测试了许多可能的解决方案后,我可以设法保存有关银行回复的会话。

感谢 talal 的评论将我重定向到我应该去的地方。

对于这个特定的环境(Phalcon 3.4,Php 7.2),最好的方法是:

1 - 使用 ini_set 函数将 session.cookie_path 设置为 / 并添加 samesite=none;安全到最后

2- phalcon bellow 中的工作示例:

$di->setShared('session', function () use ($config) {
if (getenv("ENVIRONMENT") != "development") {
    ini_set('session.cookie_path', "/; samesite=none; secure");
}
$session = new SessionAdapter();
$session->start();
return $session;

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多