From be64dcfb6193a49d57a65ca15b6b693b1924730c Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 4 Feb 2026 16:44:32 +0800 Subject: [PATCH] 1 --- doc/refresh_jarvis_cert.sh | 2 +- .../controller/jarvis/WPS365CallbackController.java | 5 ++++- .../web/controller/jarvis/WPS365Controller.java | 12 +++++++++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/doc/refresh_jarvis_cert.sh b/doc/refresh_jarvis_cert.sh index d6a9a87..b6e8e0c 100644 --- a/doc/refresh_jarvis_cert.sh +++ b/doc/refresh_jarvis_cert.sh @@ -22,7 +22,7 @@ cd /root/project/acme/acme.sh --reloadcmd "docker restart openresty" # 3. 验证 -echo "--- 证书文件 ---" +echo "--- 证书文件 ---"1 ls -l /opt/1panel/apps/openresty/openresty/www/common/ssl/ ls -l /opt/1panel/apps/openresty/openresty/www/common/ssl/jarvis.van333.cn/ 2>/dev/null || true echo "--- 证书过期时间 ---" diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/WPS365CallbackController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/WPS365CallbackController.java index cb303cf..2698fe9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/WPS365CallbackController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/WPS365CallbackController.java @@ -167,11 +167,14 @@ public class WPS365CallbackController extends BaseController { tokenInfo.getUserId(), tokenInfo.getAccessToken() != null ? tokenInfo.getAccessToken().substring(0, 20) + "..." : "null"); - // 自动保存token到后端 + // 自动保存token到后端(用 WPS 返回的 userId 存一份,再用 default_user 存一份,便于前端固定用 default_user 查询) try { if (tokenInfo.getUserId() != null) { wps365OAuthService.saveToken(tokenInfo.getUserId(), tokenInfo); log.info("访问令牌已自动保存到后端缓存 - userId: {}", tokenInfo.getUserId()); + // 同时以 default_user 保存,前端 WPS365 页固定传 userId=default_user,否则会提示未授权 + wps365OAuthService.saveToken("default_user", tokenInfo); + log.info("已同时保存为 default_user,前端可直接使用"); } else { log.warn("userId为空,无法保存Token"); HttpHeaders headers = new HttpHeaders(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/WPS365Controller.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/WPS365Controller.java index e426e72..24a0370 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/WPS365Controller.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/WPS365Controller.java @@ -108,18 +108,24 @@ public class WPS365Controller extends BaseController { /** * 获取当前用户的Token状态 + * 前端 WPS365 页固定传 userId=default_user;若该 key 下无 token,则尝试用任意已存 token 并写回 default_user,避免“已授权却提示未授权” */ @GetMapping("/tokenStatus") public AjaxResult getTokenStatus(@RequestParam(required = false) String userId) { try { WPS365TokenInfo tokenInfo = null; - // 如果提供了userId,查询指定用户的token if (userId != null && !userId.trim().isEmpty()) { tokenInfo = wps365OAuthServiceImpl.getTokenByUserId(userId); + // 前端固定用 default_user,但回调可能只存了 WPS 返回的 userId(如 wps365_xxx),此处兜底:用任意已存 token 并写回 default_user + if (tokenInfo == null && "default_user".equals(userId)) { + tokenInfo = wps365OAuthService.getCurrentToken(); + if (tokenInfo != null) { + wps365OAuthService.saveToken("default_user", tokenInfo); + log.info("已用已有 WPS365 Token 补写 default_user,前端可正常显示已授权"); + } + } } else { - // 如果没有提供userId,尝试查找所有token(通常只有一个) - // 这里使用getCurrentToken方法,它会尝试查找可用的token tokenInfo = wps365OAuthService.getCurrentToken(); }