[스프링부트]5. 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기

Bummy·2022년 8월 22일
0

springboot

목록 보기
10/15

이번부터는 로그인 기능을 구현해볼텐데
스프링에서 제공하는 스프링 시큐리티와 OAuth 2.0을 활용해 볼 것이다.

소셜 로그인을 사용하는 이유?

많은 서비스에서 직접 로그인 및 회원가입을 구현하기 보다는 구글, 카카오, 네이버와 같은 소셜 로그인 기능을 사용하는데, 그 이유는 이미 개발된 로그인 기능을 사용하면

  • 로그인
  • 회원가입
  • 아이디 찾기
  • 비밀번호 찾기
  • 회원정보 변경하기
  • 전화번호 인증하기

등등 여러 가지의 기능을 직접 구현하지 않고도 사용할 수 있기 때문이다.

스프링 부트 1.5 vs 스프링 부트 2.0

스프링 부트 1.5에서 OAuth2 연동 방법이 버전 업이 되면서 많이 변경 되었지만 여러 개발자들은

spring-security-oauth2-autoconfigure

라이브러리를 사용하여 1.5에서 쓰던 설정을 그대로 사용한다.
새로운 방법을 사용하기 보다는 기존에 사용하던 방식 그대로 사용하는 것이 편하기 때문에 이렇게 사용해왔다.

하지만 책에서 설명하기로
스프링 부트 2.0의 Spring Security Oauth2 Client 라이브러리가 가지는 장점이 있는데 그것은 다음과 같다.

  • 스프링 팀에서는 이제 새로운 기능은 2. 라이브러리에서만 지원하겠다고 선언
  • 스프링 부트용 라이브러리(starter) 출시
  • 기존에 사용되던 방식은 확장 포인트가 적절하게 오픈되어 있지 않아 직접 상속하거나 오버라이딩 해야한다.
  • 2.0 버전에서는 1.5 버전에서 사용하던 방식인 url을 모두 명시해야하는 것에서 client 인증 정보만 입력하면 되도록 변경 되었다.

구글 서비스 등록

구글 로그인 서비스를 활용하기 위해 구글 서비스에 신규 서비스를 생성해야한다.

https://console.cloud.google.com 에 접속해서 새 프로젝트를 만들어준다.

나는 이렇게 작성해주었다.

책을 따라서 OAuth 클라이언트 id를 만들다 보면

다음과 같은 화면을 볼 수 있는데 나는 "외부"로 선택해 주었다.

책의 설명대로 쭉쭉 진행하고
application.properties, application-oauth.properties를 생성하고 코드를 추가해주면 된다.

application.properties

spring.profiles.include=oauth

application-oauth.properties는 내 클라이언트 id와 클라이언트 보안 비밀이 작성되기에 github에 커밋되지 않도록 gitignore 설정까지 진행해주면 된다.

0개의 댓글