이번부터는 로그인 기능을 구현해볼텐데
스프링에서 제공하는 스프링 시큐리티와 OAuth 2.0을 활용해 볼 것이다.
많은 서비스에서 직접 로그인 및 회원가입을 구현하기 보다는 구글, 카카오, 네이버와 같은 소셜 로그인 기능을 사용하는데, 그 이유는 이미 개발된 로그인 기능을 사용하면
등등 여러 가지의 기능을 직접 구현하지 않고도 사용할 수 있기 때문이다.
스프링 부트 1.5에서 OAuth2 연동 방법이 버전 업이 되면서 많이 변경 되었지만 여러 개발자들은
spring-security-oauth2-autoconfigure
라이브러리를 사용하여 1.5에서 쓰던 설정을 그대로 사용한다.
새로운 방법을 사용하기 보다는 기존에 사용하던 방식 그대로 사용하는 것이 편하기 때문에 이렇게 사용해왔다.
하지만 책에서 설명하기로
스프링 부트 2.0의 Spring Security Oauth2 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 설정까지 진행해주면 된다.