OAuth2를 위한 기본 준비사항으로는, OAuth(Open Authorization)을 담당하고 있는 Third-Party 리소스에 대한 권한을 받아와야 한다.
나는 구글 로그인을 활용하였으므로, 프로젝트를 위한 구글 계정을 하나 파서 구글 클라우드 API에서 여러 설정 과정을 거쳤다.
이미 이러한 설정 사항들을 수 없이 많은 게시글들이 있으므로 그것들을 참고하면 좋을 것 같다.
하지만, 중요한 설정인 리다이렉션 URI에 대해서는 잘 짚고 넘어가야만 했다. (중요하다기 보다는, 내가 헤맸던 부분들을 위주로 설명하려고 한다.)
한문장으로 정리하면, Google을 통해 인증된 사용자 정보를 클라이언트에 전송해주기 위한 수단이기 때문이다.
우리 서비스는 구글 OAuth 로그인 관련 API key값을 통해서만 로그인할 수 있을 것이고, 그 결과(프로필정보와 같은 개인 정보)를 인증된 URI를 통해서만 받아야하지 않겠는가. 그래서 승인된 URI정보가 필요한 것이다.
자 여기서, SpringSecurity가 암묵적으로 정한 URI와 맞추어야 정확히 동작한다.
일단, 이유는 묻지말고, "프로토콜://서브도메인.도메인네임/login/oauth2/code/google"로 리다이렉션 URI를 추가하자. https://www.inforum.me/login/oauth2/code/google 처럼
이는 Spring Security를 사용하기 때문이므로, 다른 프레임워크를 사용하는 사람은 반드시 이렇게 설정하지 않아도 된다.