guyue
2025-07-17 8d602fe2a474ee3baae4447c7f07d027b25bedfe
修改token解析
1个文件已修改
28 ■■■■■ 已修改文件
src/main/java/com/linghu/controller/AuthController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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")