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이 생성되지 않았기 때문이다.
⇒ 구글 로그인 인증을 해서 다 됐는데 우리 서버쪽으로 인증이 되고나서 후처리가 안되었기 때문이다.
⇒ 후처리가 추가적으로 필요
'강의 따라하기 > Security1' 카테고리의 다른 글
9. Authentication객체가 가질수 있는 2가지 타입 (0) | 2024.02.27 |
---|---|
8. 구글 회원 프로필 정보 받아보기 (0) | 2024.02.27 |
6. 시큐리티 권한처리 (0) | 2024.02.27 |
5. 시큐리티 로그인 (0) | 2024.02.27 |
4. 시큐리티 회원가입 (0) | 2024.01.14 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기