728x90
스프링 시큐리티 config 파일에 .oauth2Login()만 추가해주면 활성화가 된다.
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.csrf(
csrf-> csrf.disable()
)
.authorizeRequests()
.antMatchers("/**")
.permitAll()
.and()
.formLogin()
.loginPage("/member/login") //GET
.loginProcessingUrl("/member/login") //POST
.and()
.oauth2Login() //oauth2 활성화
.and()
.logout()
.logoutUrl("/member/logout");
return http.build();
}
활성화를 시켜준다면 이전에 만들었던 카카오 로그인 버튼이 활성화가 된다.
이전에 설정한 필수정보와 선택정보가 동의 항목에 포함되어 출력되는 것을 확인할 수 있다. 여기까지 정상적으로 진행했다면 이제 SecurityConfig에 OAuthUserService 객체를 등록한다.
(SecurityConfig를 람다를 활용하여 내부 코드를 변경하고 OAuthUserService 객체를 등록한다. 사용자 정보 userInfoEndpoint를 OAuthUserService에서 처리한다.)
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.csrf(
csrf -> csrf.disable()
)
.authorizeRequests(
authorizeRequests -> authorizeRequests
.antMatchers("/**")
.permitAll()
)
.formLogin(
formLogin -> formLogin
.loginPage("/member/login") // GET
.loginProcessingUrl("/member/login") // POST
)
.oauth2Login(
oauth2Login -> oauth2Login
.loginPage("/member/login")
.userInfoEndpoint(
userInfoEndpoint -> userInfoEndpoint
.userService(oAuth2UserService)
)
)
.logout(logout -> logout
.logoutUrl("/member/logout")
);
return http.build();
}
OAuthUserService 클래스를 생성하되 이는 DefaultOAuth2UserService을 상속받는다.
public OAuth2User loadUser(){}
이제 로그인 정보를 받을 OAuth2User객체와 loadUser를 오버라이드 받아 OAuthUserService 클래스를 구현만 하면 카카오 로그인을 사용할 수 있다.
'IT' 카테고리의 다른 글
스프링부트 카카오 소셜 로그인 4(카카오 프로필 사진 활용) (1) | 2022.09.29 |
---|---|
스프링부트 카카오 소셜 로그인 3(OAuth2User, OAuth2UserService) (1) | 2022.09.28 |
AWS Lightsail (1) 서버 생성(Ubuntu, hostname 설정, 시간 설정) (1) | 2022.09.27 |
Spring Security User(UserDetail) 커스텀 (0) | 2022.09.26 |
스프링부트 카카오 소셜 로그인 1(셋팅 및 설정 작업) (0) | 2022.09.25 |