From 8d602fe2a474ee3baae4447c7f07d027b25bedfe Mon Sep 17 00:00:00 2001 From: guyue <1721849008@qq.com> Date: 星期四, 17 七月 2025 21:30:02 +0800 Subject: [PATCH] 修改token解析 --- src/main/java/com/linghu/controller/AuthController.java | 28 ++++++++++++---------------- 1 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/linghu/controller/AuthController.java b/src/main/java/com/linghu/controller/AuthController.java index 6d7e0c4..06e9f4a 100644 --- a/src/main/java/com/linghu/controller/AuthController.java +++ b/src/main/java/com/linghu/controller/AuthController.java @@ -59,24 +59,20 @@ if (token == null || "".equals(token)){ return ResponseEntity.ok("token为空"); } - // 解析token,获取用户信息 - OpenCryptUtil openCryptUtil = new OpenCryptUtil(); - String decrypt = openCryptUtil.decrypt(token); - System.out.println(decrypt); - System.out.println("----------------"); - // 1. 去除外层多余的引号 - String jsonStr = decrypt.replaceAll("^\"|\"$", ""); - // 处理后:{"name":"ceshi"}(但实际可能仍包含转义字符) + try { + OpenCryptUtil openCryptUtil = new OpenCryptUtil(); + String decrypt = openCryptUtil.decrypt(token); - // 2. 处理剩余的转义字符(将 \" 转换为 ") - jsonStr = jsonStr.replace("\\\"", "\""); + // 使用 ObjectMapper 反序列化,避免手动处理转义字符 + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode root = objectMapper.readTree(decrypt); + String name = root.get("name").asText(); - // 3. 解析 JSON - ObjectMapper objectMapper = new ObjectMapper(); - String name = objectMapper.readTree(jsonStr).get("name").asText(); - - // 返回用户信息 - return ResponseEntity.ok(name); + return ResponseEntity.ok(name); + } catch (Exception e) { + // 捕获所有异常,避免500错误 + return ResponseEntity.badRequest().body("解析失败: " + e.getMessage()); + } } @GetMapping("/getToken") -- Gitblit v1.7.1