thinkphp6.0 中session获取不到值
- 环境是本地 LAMP + thinkPHP6.0
- 问题描述:
- 在登录的时候, 使用
session()
函数将用户信息写入session
, 但是在登录中间件中获取到的值是null
- 同事和线上用的都是
WAMP
, 就没有问题, 我本地的LAMP
是有时候可以获取session, 但有时候不可以, 不可以占多数
- 在登录的时候, 使用
session
文件有写入权限, 已经开启了session_start
,session
并没有前缀- 代码如下:
LoginController.php
中的login
方法public function login() { $username = $this->request->post('username', '', 'html_in,trim'); $password = $this->request->post('password', '', 'html_in,trim'); $res = AuthService::checkLogin($username, $password); }
AuthService.php
中的checkLogin
方法public static function checkLogin($username, $password) { ... session('admin', $userInfo); return $userInfo; }
AuthMiddleware
中间件的handle
方法
在全局中间件中已经添加了public function handle($request, \Closure $next) { ... $admin = session('admin'); // 在这个位置获取不到值 ... return $next($request); }
AuthMiddleware
middleware.php
return [ // Session初始化 'think\middleware\SessionInit', \app\admin\http\middleware\AuthMiddleware::class, ];
- 在
LoginController.php
中是可以获取到session
的, 但是在AuthMiddleware.php
中获取不到
- 求各位大哥指点一下
朋友,最不济也贴一段代码吧!你这样搞 我们只能脑补代码了,自己做测试又是没有问题的 最起码:
中间件里初始化了吗 middleware
app/middleware.php
里面看一下有没有把\think\middleware\SessionInit::class
注释了