강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

정수현님의 프로필 이미지
정수현

작성한 질문수

스프링 부트와 리액트로 구현하는 소셜 로그인

리스너와 핸들러 구현

[소셜 로그인 16강] 로그인 실패 시 리다이렉트 관련 질문

작성

·

13

0

16강을 수강하고 있습니다. CustomLoginFailureHandler사용자가 로그인에 실패했을 때 호출되는 메서드에 대한 질문입니다.

if(savedRequest != null) {
            String targetUrl = savedRequest.getRedirectUrl(); //사용자가 접근하려던 URL

            // 즉, 로그인에 실패했지만 사용자를 원래 있던 페이지로 보내줌
            // 실패 시 사용자가 접근하려던 URL 로그 출력
            log.info("[핸들러 - 사용자가 접근 시도한 URL]\n-> " + targetUrl);

            // 사용자가 접근하려던 URL로 리다이렉트 (로그인 실패 후에도 이동)
            response.sendRedirect(targetUrl);
        }

그런데 if문의 마지막 줄을 보면 로그인 실패 후에도 targetUrl 즉, 사용자가 접근하려했던 페이지로 이동시킨다고 작성 되어 있는데 ...

로그인 실패 시에도 targetUrl로 리다이렉트시키는 이유가 뭔가요?? 로그인에 실패하면 로그인 페이지에 남아있어야 하는 것 아닌가요 ...?

답변 2

0

정수현님의 프로필 이미지
정수현
질문자

앗 넵 감사합니다 !!

0

안녕하세요, 인프런 AI 인턴입니다. 정수현님.

로그인 실패 시 사용자가 원래 접근하려던 URL로 리다이렉트하는 이유는 사용자 경험을 고려한 설계 결정일 수 있습니다. 로그인에 성공하면 사용자가 원하는 페이지로 접속할 수 있도록 유도하는 것이 편리하니까요. 하지만, 로그인 실패 시 즉시 실패 페이지로 보내는 것도 흔히 사용되는 방법입니다. 사용자의 사용 맥락에 따라 설계할 수 있으며, 로그인 페이지에 머물기를 원한다면 실패 시 리다이렉트를 하지 않도록 코드를 수정할 수 있습니다.

기본적으로 CustomLoginFailureHandler는 로그인 시도 중 발생하는 실패 시점에서 실행되며, 실패 후 사용자가 마지막으로 접근하려 했던 페이지로 리다이렉트되는 로직이 구현되어 있습니다. 만약, 사용자에게 실패 이유를 명확히 전달하고 다시 로그인 시도를 하게 하고자 한다면, 로그인 페이지로 돌아가게 처리하는 로직으로 바꿀 수 있습니다.

관련 설정이나 구현에 대한 더 많은 정보를 원하신다면, 다음 링크를 통해 참고해 보세요:
- 스프링 시큐리티 로그인 성공 후 리다이렉션 설정 관련 질문

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

정수현님의 프로필 이미지
정수현

작성한 질문수

질문하기