From afeeed281e60466b576fbe74d339634cc5d07b82 Mon Sep 17 00:00:00 2001 From: Codex Assistant <codex@example.com> Date: 星期三, 08 十月 2025 08:56:42 +0800 Subject: [PATCH] 修复评审功能和用户认证问题 --- backend/src/main/java/com/rongyichuang/auth/service/AuthService.java | 44 ++++++++++++++++++++++++++++++++++++-------- 1 files changed, 36 insertions(+), 8 deletions(-) diff --git a/backend/src/main/java/com/rongyichuang/auth/service/AuthService.java b/backend/src/main/java/com/rongyichuang/auth/service/AuthService.java index e9deed6..756a3a4 100644 --- a/backend/src/main/java/com/rongyichuang/auth/service/AuthService.java +++ b/backend/src/main/java/com/rongyichuang/auth/service/AuthService.java @@ -293,9 +293,9 @@ logger.warn("鈿狅笍 unionid涓虹┖鎴栫敤鎴峰凡鎵惧埌锛岃烦杩噓nionid鏌ユ壘"); } - // 4. 濡傛灉閮芥病鎵惧埌鐢ㄦ埛锛屼笉鍒涘缓鏂扮敤鎴凤紝鍙褰曠櫥褰曚俊鎭� + // 4. 濡傛灉閮芥病鎵惧埌鐢ㄦ埛锛屼负灏忕▼搴忚闂垱寤哄尶鍚嶇敤鎴峰璞★紙涓嶄繚瀛樺埌鏁版嵁搴擄級 if (user == null) { - logger.info("鏈壘鍒扮幇鏈夌敤鎴凤紝鏅�氳闂敤鎴蜂笉鍒涘缓user璁板綍锛屽彧璁板綍鐧诲綍淇℃伅"); + logger.info("鏈壘鍒扮幇鏈夌敤鎴凤紝涓哄皬绋嬪簭璁块棶鍒涘缓鍖垮悕鐢ㄦ埛瀵硅薄"); logger.info("璁块棶鐢ㄦ埛淇℃伅:"); logger.info("- openid: {}", wxLoginRequest.getWxOpenid()); logger.info("- unionid: {}", wxLoginRequest.getWxUnionid()); @@ -321,17 +321,44 @@ throw new RuntimeException("鍒涘缓鐧诲綍璁板綍澶辫触: " + e.getMessage(), e); } - // 杩斿洖璁块棶鐢ㄦ埛鐨勫搷搴旓紙鏃犵敤鎴蜂俊鎭紝鏃爐oken锛� + // 6. 涓哄尶鍚嶇敤鎴风敓鎴愮壒娈婄殑JWT token锛堜娇鐢ㄤ笓闂ㄧ殑wxopenid瀛楁锛� + logger.info("姝ラ4: 涓哄尶鍚嶇敤鎴风敓鎴怞WT token"); + String token = null; + try { + // 浣跨敤鐗规畩鐨勭敤鎴稩D锛堣礋鏁帮級鏉ユ爣璇嗗尶鍚嶇敤鎴凤紝閬垮厤涓庣湡瀹炵敤鎴稩D鍐茬獊 + Long anonymousUserId = -Math.abs(wxLoginRequest.getWxOpenid().hashCode()) % 1000000L; + // 浣跨敤鏂扮殑涓夊弬鏁版柟娉曪細userId, phone(null), wxopenid + token = jwtUtil.generateToken(anonymousUserId, null, wxLoginRequest.getWxOpenid()); + logger.info("鉁� 鎴愬姛鐢熸垚鍖垮悕鐢ㄦ埛JWT token锛寃xopenid: {}", wxLoginRequest.getWxOpenid()); + } catch (Exception e) { + logger.error("鉂� 鐢熸垚鍖垮悕鐢ㄦ埛JWT token澶辫触: {}", e.getMessage()); + logger.error("寮傚父鍫嗘爤:", e); + throw new RuntimeException("鐢熸垚JWT token澶辫触: " + e.getMessage(), e); + } + + // 7. 鏋勫缓鍖垮悕鐢ㄦ埛淇℃伅 + logger.info("姝ラ5: 鏋勫缓鍖垮悕鐢ㄦ埛淇℃伅鍝嶅簲"); + LoginResponse.UserInfo userInfo = new LoginResponse.UserInfo( + null, // userId涓簄ull锛岃〃绀哄尶鍚嶇敤鎴� + "寰俊鐢ㄦ埛", // 榛樿鍚嶇О + null, // 娌℃湁鐢佃瘽鍙风爜 + "anonymous" // 鐢ㄦ埛绫诲瀷涓哄尶鍚� + ); + + // 杩斿洖鍖垮悕鐢ㄦ埛鐨勫搷搴旓紙鍖呭惈鐢ㄦ埛淇℃伅鍜宼oken锛� WxLoginResponse response = new WxLoginResponse(); response.setSuccess(true); - response.setMessage("璁块棶鎴愬姛"); + response.setMessage("鍖垮悕璁块棶鎴愬姛"); + response.setToken(token); + response.setUserInfo(userInfo); response.setSessionKey(wxLoginRequest.getSessionKey()); response.setIsNewUser(false); response.setHasEmployee(false); response.setHasJudge(false); response.setHasPlayer(false); + response.setLoginRecordId(loginRecord.getId()); - logger.info("=== 寰俊璁块棶娴佺▼瀹屾垚锛堟棤鐢ㄦ埛鍒涘缓锛� ==="); + logger.info("=== 寰俊鍖垮悕璁块棶娴佺▼瀹屾垚 ==="); return response; } @@ -408,12 +435,13 @@ // 6. 鐢熸垚JWT token logger.info("姝ラ5: 鐢熸垚JWT token"); - String tokenIdentifier = user.getPhone() != null ? user.getPhone() : user.getWxOpenid(); - logger.info("Token鏍囪瘑绗�: {}", tokenIdentifier); + logger.info("鐢ㄦ埛鎵嬫満鍙�: {}", user.getPhone()); + logger.info("鐢ㄦ埛wxopenid: {}", user.getWxOpenid()); String token = null; try { - token = jwtUtil.generateToken(user.getId(), tokenIdentifier); + // 浣跨敤鏂扮殑涓夊弬鏁版柟娉曪細userId, phone, wxopenid + token = jwtUtil.generateToken(user.getId(), user.getPhone(), user.getWxOpenid()); logger.info("鉁� 鎴愬姛鐢熸垚JWT token锛岄暱搴�: {}", token != null ? token.length() : 0); } catch (Exception e) { logger.error("鉂� 鐢熸垚JWT token澶辫触: {}", e.getMessage()); -- Gitblit v1.8.0