Conversation
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
Test Results187 tests 187 ✅ 26s ⏱️ Results for commit 9451ce0. ♻️ This comment has been updated with latest results. |
There was a problem hiding this comment.
수고하셨습니다!! 👍
궁금한 점이 있는데, 이미 한번 로그인 된 경우에는 TOSC에서 불러오는 정보를 업데이트 하지 못하고 로그를 찍은 채 넘어갈 것 같습니다.
다만 초기 로그인 시 오류가 발생한 경우라면 어떻게 되나요?
기존 코드에서는 loginTosc에서 에러가 발생 해 AuthFacade의 login 전체가 트랙잭션에 묶여 작동하지 않았습니다.
하지만 현재는 login 메서드에서 toscAuthService.loginTosc(client, loginRequest); 부분에서 로그만 찍고 아래로 넘어가게되어
GraduationCertInfo certInfo = graduationCertResolver.resolve(user, client);
의 GraduationCodingCertFetcher.fetchCodingPass 부분에서 항상 false로 보여지게 될 텐데, 잘못된 정보를 보여주게되는 건 아닐까요??
또는
TOSC에서 불러오는 정보(수강 내역 등) 업데이트 실패를 클라이언트에 알려서 사용자에게 안내할 수 있도록 개선
이렇게 안내한다면 괜찮을까용
| } | ||
| return String.join(", ", errors.values()); | ||
| } | ||
| } No newline at end of file |
| try { | ||
| toscAuthService.loginTosc(client, loginRequest); | ||
| } catch (Exception exception) { | ||
| toscLoginFailed = true; | ||
| log.error("[TOSC] 로그인 실패, TOSC 정보 업데이트 불가 (학번: {}): {}", | ||
| loginRequest.studentId(), exception.getMessage()); | ||
| } |
There was a problem hiding this comment.
toscAuthService.loginTosc 메서드 내에 에러를 던지는 로직이 없는 것 같은데, catch문이 어떻게 작동되는 지 궁금합니다!🤔
There was a problem hiding this comment.
그러네요 제가 다 잡아버리고 catch 문을 작동시켰군요 😇
덕분에 확인 후 수정했습니다!!
|
제가 로컬에서 돌리면서 로그인 안되었을때 html 응답을 그대로 봤었는데요, 로그인이 안되고 영어인증 요청을 보낼때 나오는 응답값이 나오더라구용. 이 로그인이 안된걸 타임아웃으로 보시는거죠!? |
네, 맞습니당
말씀하신 방향과 동일하게 구현되어 있습니다~! TOSC 로그인이 실패해도 이후 DB 접근 로직은 정상 진행되어, 이전에 저장된 졸업요건 데이터를 반환해요. 추가로 toscLoginFailed: true 플래그도 함께 반환하고 있어서, 클라이언트에서 "TOSC 서버 문제로 이전 데이터를 기반으로 표시합니다" 같은 안내를 보여줄 수 있습니다~~ 용어 정리
|
TOSC 로그인 실패 시 전체 로그인 차단 문제 해결
📌 Summary
TOSC 로그인 실패 시 전체 로그인 프로세스가 중단되는 문제를 해결했습니다. TOSC 로그인은 부가 기능이므로, 실패하더라도 메인 로그인은 정상적으로 진행되어야 합니다.
🔍 Problem
기존 코드에서는 TOSC 로그인이 실패할 경우
AllcllException을 던져서 전체 로그인 프로세스가 중단되었습니다.기존 문제점:
success: false로 실패를 알림✅ Solution
1. TOSC 응답 구조화
ToscResponseDTO를 추가하여 TOSC API 응답을 파싱success필드로 실제 로그인 성공/실패 여부를 확인하도록 개선errors필드에서 상세 에러 메시지 추출 (예: "아이디를 찾을수 없습니다.")2. 예외 처리 개선
AllcllExceptionthrow를 제거하고 모든 예외를 catch하여 로깅3. 로그인 결과에 TOSC 상태 포함
LoginResult에toscLoginFailed필드 추가📊 Expected Log Examples
TOSC 로그인 실패 시:
타임아웃 발생 시:
HTTP 요청 실패 시:
🔗 Related Issue
TSK-56-150