dnd-side-project / dnd-11th-7-backend

모두의 일정을 한눈에! 간편한 일정 조율 서비스, 째깍
5 stars 1 forks source link

로그인 실패 핸들러 수정 필요 #97

Closed RTUnu12 closed 4 days ago

RTUnu12 commented 6 days ago

🛠️ 어떤 기능인가요?

현재 로그인 실패 로직은 그냥 백엔드 url 뒤에 오류 메시지를 내는 건데 이것도 수정이 필요해 보입니다.


@Component
public class OAuth2FailureHandler extends SimpleUrlAuthenticationFailureHandler {
@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) throws IOException, ServletException {

    // TODO : 로그인 실패 로직 수정 필요해보임
    String errorMessage;
    if (e instanceof UsernameNotFoundException) {
        errorMessage = "존재하지 않는 아이디 입니다.";
    } else {
        errorMessage = "알 수 없는 이유로 로그인이 안되고 있습니다.";
    }

    errorMessage = URLEncoder.encode(errorMessage, StandardCharsets.UTF_8);//한글 인코딩 깨지는 문제 방지
    response.sendRedirect("http://localhost:8080/auth/oauth-response/error=" + errorMessage);
}

}



## 🗒️ 작업 상세 내용

- [ ] 로그인 실패 핸들러 수정
f1v3-dev commented 6 days ago

아 저번에 계속 해당 오류가 뜬 이유가 이거였군요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 어떻게 변경해야할까요?

RTUnu12 commented 4 days ago

프론트 분들은 실패 응답을 보내는것을 원하고 있으십니다. 아마도 그 방향으로 해봐야 할것 같네요.

RTUnu12 commented 4 days ago

401제외 다른 응답을 보내야 한다고 하십니다. 401일 경우엔 리이슈를 작동시켜서

f1v3-dev commented 4 days ago

그 전에 궁금한게 있는데 해당 핸들러가 동작하기 위해서는 어떤 상황에서 발생해야 하는걸까요?

RTUnu12 commented 4 days ago

사실 비밀번호가 틀렸다던가 하는 것들은 전부 카카오에서 자체 처리를 하긴 하는데 보통 서버 오류나 잘못된 토큰, 세션 오류 등의 문제에서 작동됩니다.

f1v3-dev commented 4 days ago

정확히 언제 발생하는지를 모르겠어요.

서버 오류 = ? (로그인 처리 과정을 담당하는 OAuth2SuccessHandler 내부를 말하시는건가요?) 잘못된 토큰과 세션에 대해서는 발생할 일이 있을까요? 로그인 처리 과정에서는 사용하지 않는 것 같은데..

RTUnu12 commented 4 days ago

정확히는 저도 저 핸들러의 발생 지점을 모르나 전에 제가 다른 프로젝트에서 발생했던 오류, 즉 서버 측 오류일 때 발생하는 걸로 알고 있습니다.

f1v3-dev commented 4 days ago

그럼 500번대 에러와 함께 "로그인 중 오류가 발생하였습니다."와 같은 응답이면 충분할까요?

RTUnu12 commented 4 days ago

네 그러면 될거 같아요. 제가 내일 리펙터링할까요?

f1v3-dev commented 4 days ago

네 지현님이랑 세빈님한테도 같이 말씀드리고 진행하시면 될 것 같아요!

RTUnu12 commented 4 days ago

네 알겠습니다.

f1v3-dev commented 4 days ago

지현님과 얘기를 했는데 리다이렉트 URL을 "/login/failure" 로 설정 부탁드려요!

추가적으로 리다이렉트 URL에서 프론트 URL을 jjakkakProperties에 있는 frontUrl로 변경해주세요.

RTUnu12 commented 4 days ago

알겠습니다.