OAuth2 구글로그인 세팅

Sol's·2023년 1월 16일
0

팀프로젝트

목록 보기
11/25

OAuth란?

외부 웹 어플리케이션에 Google로 로그인하면 API를 통해 연동된 계정의 Google Calendar 정보를 가져와 사용자에게 보여줄 수 있습니다.

이때 사용되는 프로토콜이 OAuth입니다.

OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. (위키백과)

적용방법

google api 콘솔 접속

google api 콘솔

프로젝트 생성

프로젝트 이름을 설정합니다.

OAuth 외부 동의

*으로 처리된 필수입력 사항 기입 후 저장

사용자 인증정보 만들기

OAuth 클라이언트 ID 만들기
1. 애플리케이션 유형 : 웹 애플리케이션
2. 이름 : 원하는 이름으로 정하면 됩니다.
3. 운영되고있는 프로젝트의 URI를 입력하면 됩니다.


위와와 같은 컨트롤러의 주소는 필요없습니다.
라이브러리가 알아서 처리를 해주기 때문입니다.
아래의 코드는 Oauth2 라이브러리를 사용한다면 고정입니다.

login/oauth2/code/google

구글 로그인이 완료되면 인증Code를 우리쪽으로 돌려주게 됩니다.
우린 이 Code를 받아서 다시 AccessToken을 요청하게 됩니다.

요청 후 받은 AccessToken으로 사용자에 정보에 접근할 수 있는 권한이 생깁니다.

승인된 리다이렉션 URL은 AccessToken을 발급받기 전 Code를 발급받을 주소를 명시한는 것입니다.

Build.gradle에 라이브러리를 추가

Oauth 라이브러리가 code를 받을 URL을 만들고 Code를 받아
ClientId, ClientSecret, Code를 통해 AccessToken을 발급받습니다.

//oauth2
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'

yml 파일을 수정합니다.

spring:
  security:
    oauth2:
      client:
        registration:
          google:
            client-id: 889440187305-7jq551g285abs3crpove62dkmbhp93r5.apps.googleusercontent.com
            client-secret: 
            scope:
              - email
              - profile

로그인 파일에 a태그를 추가합니다.

<a href="#" th:href="@{/oauth2/authorization/google}" class="social">구글<i class="fab fa-google-plus-g"></i></a>

위 주소는 Oauth2라이브러를 쓰면 고정입니다.

404에러가 뜹니다.
이유는 해당 주소에 대해 맵핑된 정보가 없습니다.

Security Filter에서 OAuth 접근을 허용해 줍니다.

이제 구글 로그인을 할수있는 조건이 되었습니다.

아직 끝난건 아닙니다.
구글 로그인이 완료된 뒤의 후처리가 필요합니다.

너무 길어진 관계로 다음 포스팅에서 이어서 진행하겠습니다.

profile
배우고, 생각하고, 행동해라

0개의 댓글