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手冊中找到,如下圖:

Tags: