SpringSecurity - OAuth2.0 구글 로그인 및 회원가입

hsso_o·2024년 7월 15일
0

스터디

목록 보기
23/44

드디어 구글 로그인 완😺

일반 로그인을 하면 UserDetails로 넘어오고,
OAuth 로그인을 하면 OAuth2User로 넘어옴!
그래서 PrincipalDetails에 UserDetails, OAuth2User를 implements해서 PrincipalDetails 하나로 사용.

OAuth로그인하고 최초 로그인일 경우(회원에 없을 경우), 회원가입 시키는데

// 구글 로그인 버튼 클릭 -> 구글 로그인창 -> 로그인 완료 -> 코드를 리턴(OAuth-Client 라이브러리) -> Accesstoken 요청
// userRequest 정보 -> loadUser함수 호출 -> 구글로부터 회원 프로필 받아줌
        OAuth2User oauth2User = super.loadUser(userRequest);
        
        // getAttribute("원하는 속성 이름") 이렇게 정보 가져올 수 있음
        String email = oauth2User.getAttribute("email");
        
        // 이미 가입된 회원인지
        User userEntity = userRepository.findByUsername(username);
        
        // 아니라면(가입 안된 회원) 해당 정보를 유저 엔티티에 담아서 저장(회원가입)
        userRepository.save(userEntity);
profile
아뇨 소혠데요-

0개의 댓글