본문 바로가기
Back/Spring

[Spring/Security] 구글 로그인 준비

by 오엥?은 2023. 6. 23.
반응형

📌 구글 로그인

 

Google Api Console 접속

https://console.cloud.google.com

 

Google 클라우드 플랫폼

로그인 Google 클라우드 플랫폼으로 이동

accounts.google.com

 

 

◽ 새로운 프로젝트 만들기

 

① 프로젝트를 만들기 위해 새 프로젝트를 클릭한다.

새로운 프로젝트 만들기
프로젝트 선택 - 새 프로젝트 클릭

 

 

② 프로젝트의 이름을 설정한 뒤, 만들기 버튼을 클릭한다.

프로젝트 이름 설정

 

③ 프로젝트 생성 확인

프로젝트 생성

그럼 이렇게 프로젝트가 생성된 것을 볼 수 있다.

 

 

④ API 및 서비스 > OAuth 동의 화면

User Type - 외부 선택
애플리케이션 이름 설정

User Type 은 외부로 선택하고, 애플리케이션 이름을 설정한 후 저장한다.

 

 

⑤ 사용자 인증 정보

사용자 인증 정보 만들기

+ 사용자 인증 정보 만들기 클릭

 

OAuth 클라이언트 ID 만들기

OAuth 클라이언트 ID 클릭

 

애플리케이션 유형 - 웹 애플리케이션

애플리케이션 유형 -> 웹 애플리케이션 클릭

 

이름 설정, URI 설정

이름 설정 후, 리다이렉션 URI를 적어준다.

 

구글 로그인이 완료가 되고나면, 구글 서버 쪽에서 인증이 되었다는 코드를 돌려준다. 우리는 이 코드를 받아서 SSO Token을 요청한다. SSO Token을 받아서 사용자 대신 우리 서버가 구글 서버에 사용자의 개인정보 등 민감한 정보에 접근할 수 있는 권한이 생긴다. 

 

그래서 URI 중 /login 앞은 자유롭게 적어도 되는데, /login/oauth2/code/google 은 정해져있다. 그렇게 작성하면 여기에 대한 Controller는 필요가 없다.

 

OAuth 클라이언트 생성

OAuth 클라이언트가 생성이 된 것을 확인할 수 있다.

 

 

⑥ Spring project 만들기

 

◽ 종속성에 OAuth Client를 추가하여 새로운 프로젝트를 만든다.

종속성 - OAuth2 Client

 

application.yml 에 위에서 생성해 주었던 OAuth 클라이언트의 id와 password를 입력한다.

application.yml

 

◽ html에 아래와 같은 코드를 입력해 넣는다.

<a href="/oauth/authorization/google">구글 로그인</a>

 

◽ SecurityConfig.java 

SecurityConfig.java

SecurityConfig.java에 위와 같이 코드를 입력해 넣는다.

 

위 코드를 입력해 넣으면 구글 로그인을 할 수 있는 화면이 뜨는데, 로그인 해보면 403에러가 뜬다.

.loginPage("/loginForm")  은 구글 로그인이 완료된 뒤의 후처리가 필요하다.

 

 

 

참고 : 인프런 - 스프링부트 시큐리티 & JWT 강의 (최주호)

반응형