• ThinkPHP6.0 Session 问题


    自已为了学习TP6,写了一个登录管理界面,用户名、密码、验证码。前几天还可以正常登录,验证码也正常,不知道自己怎么想的,或许是手贱吧!把Cookie和Session一起用,前段时间登录正常,今天心血来潮想再玩玩,就打开phpstudy,启动 Apache+MySQL,然后打开chrone.exe浏览器,快速输入http://localhost:8081/admin/Index/login.html,输入用户名、密码、验证码,点登录按钮,提示 验证码 错误,错误很常见,我再刷新一下页面,再熟练地输入用户名、密码、验证码,点登录按钮,又提示验证码错误,一下就懵B了,好好的怎么就出现这样的提示,然后一统查,首先查看 app\middleware.php 这个文件

    1. <?php
    2. // 全局中间件定义文件
    3. return [
    4. // 全局请求缓存
    5. \think\middleware\CheckRequestCache::class,
    6. // 多语言加载
    7. // \think\middleware\LoadLangPack::class,
    8. // Session初始化
    9. \think\middleware\SessionInit::class,
    10. // 跨域解决
    11. \think\middleware\AllowCrossDomain::class
    12. ];

     \think\middleware\SessionInit::class 这个的注释去掉了,为什么Session不能使用,打开 Microsoft Edge,熟悉地输入,点击登录按钮,嗯,可以登录,一切正常,为什么chrone提示验证码错误,然后一统百搜,结果都差不多,后来想想还是去官网看看吧,然后打开https://www.kancloud.cn/manual/thinkphp6_0/1037635

    查看下面的评论,大多是Session丢失什么的呀,后来看到

    kaysonzhang@kaysonzhang ·3 年前
    tp6如果php.ini中的session.cookie_secure 默认配置是不打开的,config/cookie.php中的secure设置为true的话将不能读取session,需要session.cookie_secure手动打开设置才可以,原来tp5的是有ini_set('session.cookie_secure', $config['secure']);这个配置,tp6没有了,建议同步设置一下

    灵光一现,赶紧看看我的config/cookie.php

    1. <?php
    2. // +----------------------------------------------------------------------
    3. // | Cookie设置
    4. // +----------------------------------------------------------------------
    5. return [
    6. // cookie 保存时间
    7. 'expire' => 0,
    8. // cookie 保存路径
    9. 'path' => '/',
    10. // cookie 有效域名
    11. 'domain' => '',
    12. // cookie 启用安全传输
    13. 'secure' => true,
    14. // httponly设置
    15. 'httponly' => false,
    16. // 是否使用 setcookie
    17. 'setcookie' => true,
    18. // samesite 设置,支持 'strict' 'lax'
    19. 'samesite' => 'none',
    20. ];

    果然secure的值改为true了,什么时候改的忘记了,改回来试试吧!

    1. <?php
    2. // +----------------------------------------------------------------------
    3. // | Cookie设置
    4. // +----------------------------------------------------------------------
    5. return [
    6. // cookie 保存时间
    7. 'expire' => 0,
    8. // cookie 保存路径
    9. 'path' => '/',
    10. // cookie 有效域名
    11. 'domain' => '',
    12. // cookie 启用安全传输
    13. 'secure' => false,
    14. // httponly设置
    15. 'httponly' => false,
    16. // 是否使用 setcookie
    17. 'setcookie' => true,
    18. // samesite 设置,支持 'strict' 'lax'
    19. 'samesite' => 'none',
    20. ];

    改过来后,再打开chrone浏览器,刷新,输入,点登录,哈哈,正常跳转登录成功。同样打开Microsoft Edge浏览器,刷新,输入,点登录,哈哈,正常跳转登录成功。OK

  • 相关阅读:
    交叉编译工具链-Ubuntu 安装说明
    基于 Hive 的 Flutter 文档类型存储
    开源模型应用落地-LangChain高阶-知识图谱助力记忆增强
    【英语:基础高阶_经典外刊阅读】L1.阅读理解—读题定位法
    【暑期每日一题】洛谷 P7257 [COCI2009-2010#3] FILIP
    ROS IMU 数据发布---rviz_imu_plugin的安装
    Pytorch框架学习笔记-数据处理-菜鸟进阶艰难之路
    GPT提示语格式——个人自用
    现货白银交易时间笔记
    从策略到执行:实施战略定位的实战手册
  • 原文地址:https://blog.csdn.net/xuelin663/article/details/126544569