thinkphp框架session共享问题

  • 2019 年 12 月 27 日
  • 筆記

近期一个项目中涉及到了二级站的问题,需要将主站和二级站点的session进行打通,涉及到session共享问题,查看了网站的很多实例,最后总结出最简单的办法。分享给大家

我们thinkphp5.1版本框架为例,在config目录内找到cookie.php,session.php,我们将其打开;

一、cookie.php

<?php  // +----------------------------------------------------------------------  // | ThinkPHP [ WE CAN DO IT JUST THINK ]  // +----------------------------------------------------------------------  // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.  // +----------------------------------------------------------------------  // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )  // +----------------------------------------------------------------------  // | Author: liu21st <[email protected]>  // +----------------------------------------------------------------------    // +----------------------------------------------------------------------  // | Cookie设置  // +----------------------------------------------------------------------  return [      // cookie 名称前缀      'prefix'    => '',      // cookie 保存时间      'expire'    => 0,      // cookie 保存路径      'path'      => '/',      // cookie 有效域名      'domain'    => '.explode.com',      //  cookie 启用安全传输      'secure'    => false,      // httponly设置      'httponly'  => '',      // 是否使用 setcookie      'setcookie' => true,  ];

二、session.php

<?php  // +----------------------------------------------------------------------  // | ThinkPHP [ WE CAN DO IT JUST THINK ]  // +----------------------------------------------------------------------  // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.  // +----------------------------------------------------------------------  // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )  // +----------------------------------------------------------------------  // | Author: liu21st <[email protected]>  // +----------------------------------------------------------------------    // +----------------------------------------------------------------------  // | 会话设置  // +----------------------------------------------------------------------    return [      'id'             => '',      // SESSION_ID的提交变量,解决flash上传跨域      'var_session_id' => '',      // SESSION 前缀      'prefix'         => 'think',      // 驱动方式 支持redis memcache memcached      'type'           => '',      // 是否自动开启 SESSION      'auto_start'     => true,      // session cookie_domain 有效域名      'domain'         => '.explode.com'  ];

总结:我们将cookie和session的作用域进行设置即可,关于session的有效域名设置问题,可以在thinkphp5.1手册中找到,如下图: