🍀

구글 로그인 방법론 및 구현

작성일자
Sep 9, 2023
태그
DIARY_DEVELOP
프로젝트
KDKD
책 종류

구글 로그인 방법론

방법 1. 클라가 구글과 소통 다하고, 백은 아무것도 안함

  • 설명
    • 아래 그림과 같이 현재 백엔드 구글 로그인 구현은 구글에 뭔가 따로 요청을 하지 않아요.
      • notion image
      • 클라가 구글에 로그인 요청해서 id토큰과 profile 정보를 받는데, 여기서 profile정보를 서버에 넘겨줘버리는거죠.
    • 플로우를 다르게 나타내보자면 아래 그림과 같아요.
      • notion image
  • 장단점
    • 간단하지만, 클라와 백이 프로필을 바로 주고 받는 거다 보니 보안에 취약하지 않을까 하는 걱정이 됩니다.
 

방법 2. 클라도 구글과 소통하고, 백도 함

  • 설명
    • 아래 그림과 같음
      • notion image
      • 클라가 구글에 로그인 요청해서 id 토큰 받은 걸 서버에 넘겨줌
      • 서버는 id토큰을 가지고 구글에 검증 요청을 해서 profile(PayLoad) 받음
    • 플로우
      • notion image
  • 장단점
    • 코드 수정 필요. 대신 안전하고 더 보편적인 방법인 거 같음.
 

구글 로그인 구현

  • 서론
    • 두 번째 방법을 사용하기로 했다.
    • 첫 번째 방법에 적어둔 단점이 너무나 치명적이기 때문이다.
    • restTemplate 방식을 사용했다.
  • 본론 : 내 코드
    • AuthController
      • AuthService
        • GoogleLoginHelper
          • GoogleAuthDto
            • AuthGoogleLoginRequest
              • AuthLogionResponse
               

              RestTemplate vs WebClient

              하루 정리

              TIL 작성하기
              DDD 플젝
              구글 로그인 구현