[Spring] 스프링 시큐리티 소셜 로그인

[Spring] 스프링 시큐리티 소셜 로그인

스프링 시큐리티와 OAuth2를 사용해 소셜 로그인을 구현해봅니다.


웹을 사용할 때 매번 회원가입을 하고 이를 기억해야 하는 것은 큰 불편함입니다. 이를 해소하기 위해 기존 서비스의 인증을 사용하는 방식을 소셜 로그인이라고 합니다.
서비스를 제공하는 업체들은 각자 다른 방식으로 로그인하지 않도록 공통의 인증방식을 제공하는데 이를 OAuth(Open Authorization)라고 합니다. OAuth를 제공하는 서비스 업체들을 이용해 로그인을 처리하면 사용자 관리에 대한 부담을 줄일 수 있습니다.
이번 예제에서는 구글의 OAuth를 통해 소셜 로그인을 구현합니다. 구글 API 및 서비스를 통해 OAuth를 사용할 수 있습니다.



1. 구글 API 및 서비스 - 사용자 인증 정보



1

먼저 API 및 서비스에서 사용자 인증 정보탭으로 갑니다.
해당 화면 상단에는 사용자 인증 정보 만들기가 존재하는데 이 중 OAuth 클라이언트 ID를 선택합니다.

2. 구글 API 및 서비스 - OAuth 클라이언트 ID 만들기



2

OAuth 클라이언트 ID를 만들기 위해선 먼저 OAuth 동의 화면을 구성해야 합니다. 동의 화면 구성 버튼을 눌러 해당 화면으로 이동합니다.

3. 구글 API 및 서비스 - OAuth 동의 화면 구성



3

OAuth 동의 화면 구성은 위와 같습니다. 내부 및 외부 여부를 선택한 뒤 만들기 버튼을 누릅니다.

4. 구글 API 및 서비스 - 앱 등록 화면



4

동의 화면에 나타날 내용을 자유롭게 작성합니다.

5. 구글 API 및 서비스 - API 범위 설정



5

OAuth가 제공할 API의 범위를 설정합니다.
위의 그림과 같은 3개의 항목을 설정합니다.

6. 구글 API 및 서비스 - 사용자 인증 정보



6

동의 화면을 구성했으니 다시 OAuth 클라이언트 ID를 만들러 이동합니다.

7. 구글 API 및 서비스 - OAuth 클라이언트 ID 구성



7

OAuth를 사용할 어플리케이션 유형 및 리다이렉션 URI를 작성합니다.

8. 구글 API 및 서비스 - OAuth 클라이언트 ID 생성



8

생성 결과 나타나는 화면입니다. 클라이언트 ID와 클라이언트 보안 비밀번호를 사용해 소셜 로그인의 구현에 사용합니다.

9. build.gradle - OAuth 의존성 주입



9

OAuth2를 사용하기 위한 의존성을 주입합니다.

10. application.propertices - spring.profiles.include 설정



10

OAuth2를 사용하기 위해 설정을 추가합니다.

11. application-oauth.propertices 생성



11

OAuth를 위한 application-oauth.propertices를 생성합니다.
해당 파일에 발급받은 아이디 및 비밀번호를 작성합니다.

12. SecurityConfig - filterChain() 수정



12

filterChain()에 OAuth를 사용한 로그인이 가능하도록 http.oauth2Login()을 추가합니다.

13. SecurityConfig - filterChain() 수정 결과



13

프로젝트를 실행한 뒤 로그인 화면을 살펴보면 OAuth를 사용하는 로그인 버튼이 생성된 것을 확인할 수 있습니다.

14. 소셜 로그인 화면 확인



14

소셜 로그인 화면엔 앞서 설정한 OAuth 동의 화면이 나타나는 것을 확인할 수 있습니다.

15. 소셜 로그인 결과



15

로그인 결과는 위와 같습니다.


© 2022. All rights reserved.