我的问题是我有一个网站,当我刷新页面时,会话会被破坏。这意味着我丢失了我的购物车、我的愿望清单等...在 Safari 和 Firefox 中也会发生这种情况,但在我的 PC 上,会话仍保留在那里。这不是隐身选项卡/窗口,我不会在刷新之间删除我的 Cookie 和/或会话数据,也不会在浏览器设置中指定在任何情况下删除 Cookie(或其他数据)。我在带有 FPM 的 nginx 下使用 Yii2(最新通过 Composer 安装)和 PHP 7.4。php.ini 配置(会话):session.save_handler = files;session.save_path = "/var/lib/php/sessions"session.use_strict_mode = 0session.use_cookies = 1session.cookie_secure = 0session.use_only_cookies = 1session.name = PHPSESSIDsession.auto_start = 0session.cookie_lifetime = 5184000session.cookie_path = /session.cookie_domain =session.cookie_httponly = 0session.cookie_samesite = "Strict"session.serialize_handler = phpsession.gc_probability = 1/100session.gc_divisor = 1000session.gc_maxlifetime = 5184000session.referer_check =session.cache_limiter = nocachesession.cache_expire = 5184000session.use_trans_sid = 0session.sid_length = 26session.trans_sid_tags = "a=href,area=href,frame=src,form=";session.trans_sid_hosts=""session.sid_bits_per_character = 5;session.upload_progress.enabled = On;session.upload_progress.cleanup = On;session.upload_progress.prefix = "upload_progress_";session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS";session.upload_progress.freq = "1%";session.upload_progress.min_freq = "1";session.lazy_write = On我的 Yii2 配置(frontend/config/main.php):return [ // ... 'modules' => [ // ... 'session' => [ 'class' => 'yii\web\Session', 'timeout' => 5184000, ], //.. ], // .. 'components' => [ // .. 'session' => [ 'name' => 'advanced-frontend', ], // .. ], //..];我的测试前端中的 TestController:<?phpnamespace frontend\controllers;use Yii;use yii\web\Controller;我在 php.ini 和 Yii2 主配置中尝试了各种配置,但没有成功。任何想法apprised!
1 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
在询问了几个人并进行了大量调试之后,问题是session.cookie_samesite = "Strict"
当我将其更改为问题时,session.cookie_samesite = "None"
问题就像魔术一样解决了。
- 1 回答
- 0 关注
- 86 浏览
添加回答
举报
0/150
提交
取消