为什么会话会破坏移动浏览器中的每个页面加载?

我的问题是我有一个网站,当我刷新页面时,会话会被破坏。这意味着我丢失了我的购物车、我的愿望清单等...在 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 = 0

session.use_cookies = 1

session.cookie_secure = 0

session.use_only_cookies = 1

session.name = PHPSESSID

session.auto_start = 0

session.cookie_lifetime = 5184000

session.cookie_path = /

session.cookie_domain =

session.cookie_httponly = 0

session.cookie_samesite = "Strict"

session.serialize_handler = php

session.gc_probability = 1/100

session.gc_divisor = 1000

session.gc_maxlifetime = 5184000

session.referer_check =

session.cache_limiter = nocache

session.cache_expire = 5184000

session.use_trans_sid = 0

session.sid_length = 26

session.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:


<?php


namespace frontend\controllers;


use Yii;

use yii\web\Controller;


我在 php.ini 和 Yii2 主配置中尝试了各种配置,但没有成功。任何想法apprised!


哆啦的时光机
浏览 87回答 1
1回答

幕布斯6054654

在询问了几个人并进行了大量调试之后,问题是session.cookie_samesite = "Strict"当我将其更改为问题时,session.cookie_samesite = "None"问题就像魔术一样解决了。
打开App,查看更多内容
随时随地看视频慕课网APP