From 269e8e48a7a43c8375ca6c6ea3ea1ac80919215e Mon Sep 17 00:00:00 2001 From: Leo Date: Mon, 19 Jan 2026 20:53:46 +0800 Subject: [PATCH] 1 --- .../jarvis/service/impl/WPS365OAuthServiceImpl.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/WPS365OAuthServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/WPS365OAuthServiceImpl.java index 6986749..2ac8a37 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/WPS365OAuthServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/WPS365OAuthServiceImpl.java @@ -138,6 +138,14 @@ public class WPS365OAuthServiceImpl implements IWPS365OAuthService { authUrl.append("&state=").append(state); log.debug("授权URL参数 - state: {}", state); + // prompt参数(可选,用于控制授权页面显示) + // prompt=consent: 强制显示授权确认页面,即使用户已授权过 + // prompt=login: 强制显示登录页面 + // 如果不添加此参数,已登录且已授权的用户会直接跳过授权页面 + // 注意:WPS365可能不支持此参数,如果不支持会被忽略 + authUrl.append("&prompt=consent"); + log.debug("授权URL参数 - prompt: consent (强制显示授权确认页面)"); + String result = authUrl.toString(); log.info("生成授权URL: {}", result); log.warn("⚠️ 请确保WPS365开放平台配置的回调地址与以下地址完全一致(包括协议、域名、路径):"); @@ -148,6 +156,10 @@ public class WPS365OAuthServiceImpl implements IWPS365OAuthService { log.info(" - response_type: code"); log.info(" - scope: {}", scope); log.info(" - state: {}", state); + log.info(" - prompt: consent (强制显示授权确认页面)"); + log.info("💡 说明:已添加 prompt=consent 参数,强制显示授权确认页面"); + log.info(" 如果用户已登录且已授权过,WPS365可能会跳过授权页面直接返回code"); + log.info(" 这是正常的OAuth2行为,不是安全问题"); log.info("如果仍然报错,请检查:"); log.info(" 1. WPS365平台配置的回调地址是否与上述redirect_uri完全一致"); log.info(" 2. 参数名是否正确(WPS365可能使用app_id而不是client_id)");