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模板等精品素材、电商课程、推广引流课程等,尽在 天边资源网 。