401, 'msg' => '请先登录', 'data' => null ]); } // 获取管理员信息 $admin = \app\common\model\Administrator::where([ ['id', '=', $adminId], ['status', '=', 1] ])->find(); // 如果管理员不存在,返回401未授权 if (!$admin) { return json([ 'code' => 401, 'msg' => '管理员账号不存在或已被禁用', 'data' => null ]); } // 验证Token是否有效 $expectedToken = $this->createToken($admin); if ($adminToken !== $expectedToken) { return json([ 'code' => 401, 'msg' => '登录已过期,请重新登录', 'data' => null ]); } // 将管理员信息绑定到请求对象,方便后续控制器使用 $request->adminInfo = $admin; // 继续执行后续操作 return $next($request); } /** * 创建登录令牌 * @param \app\common\model\Administrator $admin * @return string */ private function createToken($admin) { $data = $admin->id . '|' . $admin->account; return md5($data . 'cunkebao_admin_secret'); } }