7. 구글 로그인 준비
by 볼빵빵오춘기google api 콘솔로 프로젝트 등록
구글 api 콘솔 사이트로 들어간다. (https://console.developers.google.com/ 링크로 접속)
프로젝트 만든다.
OAuth 동의한다.
사용자 인증 정보를 설정한다.
build.gradle.kts (or pom.xml)
라이브러리 추가한다.(dependencies안에 넣어주면 된다.)
implementation("org.springframework.boot:spring-boot-starter-oauth2-client")
application.properties
google 로그인에 필요 부분 추가한다.
#oauth - google login spring.security.oauth2.client.registration.google.client-id=클라이언트아이디 입력 spring.security.oauth2.client.registration.google.client-secret=클라이언트 보안 비밀번호 입력 spring.security.oauth2.client.registration.google.scope=email,profile // 가져올 정보 선택해서 적어준다.
loginForm.html
구글로그인 a링크 코드 추가한다.
이 때, 링크 주소가 중요하다!
/oauth2/authorization/ ⇒ 이 부분 고정이고
/oauth2/authorization/ + google or kakao or naver 이런식으로 작성하면 된다.
<a href="/oauth2/authorization/google">구글로그인</a>
더보기

실행결과

⇒ 해당 주소에 대해 맵핑된 부분이 없어 404가 뜬다.
⇒ 이 부분도 SecurityConfig에 설정해주면 된다.
SecurityConfig
@Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); http.authorizeRequests() .antMatchers("/user/**").authenticated() .antMatchers("/manager/**").access("hasRole('ROLE_ADMIN') or hasRole('ROLE_MANAGER')") .antMatchers("/admin/**").access("hasRole('ROLE_ADMIN')") .anyRequest().permitAll() .and() .formLogin() .loginPage("/loginForm") .loginProcessingUrl("/login") // login 주소가 호출이 되면 시큐리티가 낚아채서 대신 로그을 진행 .defaultSuccessUrl("/") .and() .oauth2Login() .loginPage("/loginForm"); // 구글 로그인이 완료된 뒤의 후처리가 필요함. }
더보기

실행결과

⇒ 실제 로그인을 할려고 계정을 누르면 403이 뜬다.
⇒ 아직 session이 생성되지 않았기 때문이다.
⇒ 구글 로그인 인증을 해서 다 됐는데 우리 서버쪽으로 인증이 되고나서 후처리가 안되었기 때문이다.
⇒ 후처리가 추가적으로 필요

블로그의 정보
Hello 춘기's world
볼빵빵오춘기