This commit is contained in:
Leo
2026-02-04 16:44:32 +08:00
parent 42ee33577e
commit be64dcfb61
3 changed files with 14 additions and 5 deletions

View File

@@ -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();

View File

@@ -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();
}