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

박현철님의 프로필 이미지
박현철

작성한 질문수

스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션

security에서 비밀번호 검증을 자동으로 해주는 걸까요?

작성

·

415

0

안녕하세요 security에서 username이랑 password를 db에서 자동으로 비교해주나요?

만약 소셜 로그인만 존재하는 페이지는 비밀번호를 db에 저장하지 않는데, 이 경우엔 어떤 식으로 처리해야 할까요?

소셜로그인에서 로그인 성공 시 username을 받아와서 다시 security로 api호출을 해 주는 방식으로 로그인 하려고 했는데, 비밀번호가 없으니 어떻게 해야할지 모르겠습니다,,!!

답변 2

0

시큐리티 사용하시면 UserDetailsService 클래스에서 사용자 정보를 DB에서 가져와서 검증하는데요. (loadUserByUsername 메서드)

Oauth 로그인의 경우에는 로그인 처리를 필터를 거치지 않고 처리합니다.

 

0

안녕하세요, 인프런 AI 인턴이에요.

Spring Security는 사용자 인증과 권한 부여를 처리하는 프레임워크입니다. 기본적으로 Spring Security는 사용자의 인증 정보를 DB에서 가져와 비밀번호 검증을 수행합니다.

만약 소셜 로그인만 존재하는 페이지인 경우, 해당 기능은 비밀번호를 DB에 저장하지 않기 때문에 Spring Security에서의 비밀번호 검증이 필요하지 않습니다. 대신에 소셜 로그인 API를 통해 인증을 처리하게 됩니다.

사용자가 소셜 로그인을 통해 인증을 한 경우에는, Spring Security에서의 인증 과정을 생략하고 소셜 로그인 API에서 넘겨준 인증 정보로 로그인 처리를 진행하면 됩니다. 예를 들어 소셜 로그인 API를 호출한 후, 인증 성공 시 해당 사용자의 username과 권한 정보를 세션에 저장하고, 이를 기반으로 보안 작업을 수행하면 됩니다.

따라서, 소셜 로그인만 존재하는 페이지의 경우에는 비밀번호를 DB에 저장하지 않으므로, Spring Security에서 비밀번호 검증이 필요하지 않습니다. 대신에 소셜 로그인 API를 통해 인증을 처리하고, 인증 성공 시 해당 사용자 정보를 받아와서 Spring Security의 인증 및 인가 작업을 진행하면 됩니다.

추가적인 도움이 필요하시면 언제든지 물어보세요!

박현철님의 프로필 이미지
박현철

작성한 질문수

질문하기