tp5.1与nextcloud整合到了一起,用户表是共用的,想做session共享进行同步登录
总登录入口使用的nc中现成的页面及逻辑,
tp中session共享的代码为:
$sessionName = config('session_name'); session_name($sessionName); $sessionId = cookie($sessionName); session_id($sessionId); 其中config('session_name');与nc config.php中的instanceid一致
nc中登录成功后使用$_SESSION['uid'] = xxx;
但tp中使用print_r(Session::get('uid'));并无内容,经过一番测试发现tp中的session是有前缀的,在config/session.php中可以看到
return [ 'id' => '', // SESSION_ID的提交变量,解决flash上传跨域 'var_session_id' => '', // SESSION 前缀 'prefix' => 'think', // 驱动方式 支持redis memcache memcached 'type' => '', // 是否自动开启 SESSION 'auto_start' => true, ]; 所以,解决办法为:在nc登录成功之后设置$_SESSION['think']['uid'] = xxx; 这样tp中print_r(Session::get('uid'));就可以打印出uid的值了
更多精彩内容:各种AI课程、技能课程、黑科技软件、网站小程序源码、副业小项目、PPT模板等精品素材、电商课程、推广引流课程等,尽在 天边资源网 。