header('Authorization', ''); if (strpos($token, 'Bearer ') === 0) { $token = substr($token, 7); } if (empty($token)) { return json(['code' => -1, 'msg' => '请登录', 'data' => null])->code(401); } // 解析Token: base64(staff_id|expire|hmac) $plain = base64_decode($token); if (!$plain) { return json(['code' => -1, 'msg' => 'Token无效', 'data' => null])->code(401); } $parts = explode('|', $plain); if (count($parts) !== 3) { return json(['code' => -1, 'msg' => 'Token格式错误', 'data' => null])->code(401); } [$staffId, $expire, $sign] = $parts; // 校验过期 if (time() > intval($expire)) { return json(['code' => -1, 'msg' => '登录已过期', 'data' => null])->code(401); } // 校验签名 $secret = Config::get('app.app_secret', 'bar_order_secret_key_2026'); $expected = hash_hmac('sha256', $staffId . '|' . $expire, $secret); if (!hash_equals($expected, $sign)) { return json(['code' => -1, 'msg' => 'Token签名错误', 'data' => null])->code(401); } $request->staffId = intval($staffId); return $next($request); } }