IT 개발2026-05-06

구글 로그인 연동: OAuth 설정과 ID 토큰 검증

구글 OAuth 설정과 게시 상태·ID 토큰 검증을 설명합니다.

구글 로그인 연동: OAuth 설정과 ID 토큰 검증

안녕하세요. 사랑받는 IT 프로덕트의 첫걸음, 똑똑한개발자입니다.

구글 로그인은 Google 계정의 인증 결과를 받아 서비스에 로그인하는 기능입니다. 웹에서는 Google Identity Services를 사용하며, 구글 API의 데이터 접근 권한을 받는 과정과 로그인 자체를 구분할 수 있습니다. 오늘은 콘솔 설정과 게시 상태, ID 토큰 검증 방법을 알아보겠습니다.

구글 로그인 연동, 콘솔 메뉴부터 달라졌습니다

구글 로그인 연동 - Google Auth Platform 메뉴 구성(브랜딩·대상·클라이언트)

예전 글의 'OAuth 동의 화면'은 지금 콘솔과 화면이 다릅니다. 이 설정이 Google Auth Platform 아래 개요, 브랜딩, 대상, 클라이언트, 데이터 액세스, 인증 센터로 나뉘었기 때문입니다.

프로젝트를 만든 뒤 개요에서 시작하기(Get started)를 누르고 앱 이름, 지원 이메일, 대상, 연락처를 넣으면 됩니다. 브랜딩에는 앱 이름과 로고, 홈페이지·개인정보처리방침 링크, 승인된 도메인을 채웁니다. 대상은 사내 도구가 아니라면 외부(External)를 고릅니다.

테스트·프로덕션 게시 상태와 기본 로그인 권한의 예외

구글 로그인 연동 Google OAuth 게시 상태 테스트와 프로덕션 비교

구분

테스트(Testing)

프로덕션(In production)

사용자 범위

일반적으로 테스트 사용자 최대 100명, 기본 로그인 권한만 요청하면 예외

공개 상태·검증·조직 정책에 따라 결정

테스트 만료 규칙

테스트 승인·리프레시 토큰 7일 제한에 기본 권한 예외 적용

테스트의 7일 규칙 외에 토큰 만료·취소 조건 존재

맞는 단계

개발·내부 QA

실제 출시

기본 범위만 쓰면 출시 준비가 가볍습니다.

로그인에 필요한 범위는 openid, email, profile입니다. 이 기본 신원 범위만 요청하면 테스트 사용자 목록과 7일 만료 규칙에 예외가 적용됩니다. 단순 로그인과 다른 Google API 접근 권한을 구분하는 이유입니다.

민감한 범위를 더하면 앱 인증을 거칩니다.

캘린더·드라이브처럼 민감·제한 범위를 요청하면 인증 센터에서 앱 인증(verification)을 받아야 합니다. 인증 전에는 '확인되지 않은 앱' 경고가 뜨고 새 사용자는 100명으로 묶입니다.

Google OAuth 클라이언트 ID는 플랫폼마다 만듭니다

구글 로그인 연동 플랫폼별 OAuth 클라이언트 ID 설정값

웹은 자바스크립트 원본과 리디렉션 URI를 등록합니다.

클라이언트 메뉴에서 유형을 웹 애플리케이션으로 고른 다음 버튼을 띄울 사이트는 승인된 자바스크립트 원본에, 인가 코드를 받을 서버 주소는 승인된 리디렉션 URI에 넣으면 됩니다. 로컬에서는 http://localhost와 http://localhost:포트번호를 둘 다 추가해야 합니다.

Android는 패키지 이름과 SHA-1 지문이 필요합니다.

SHA-1 지문은 keytool로 확인합니다. Credential Manager로 구현할 때는 웹 클라이언트 ID도 넘기므로 웹 클라이언트도 함께 만들어야 합니다.

iOS는 번들 ID로 만듭니다.

iOS 앱 설정에는 발급받은 클라이언트 ID와 SDK 가이드에 따른 URL 설정 등을 사용합니다. 웹 서버용 보안 비밀을 모바일 앱에 넣지 않습니다.

웹은 Google Identity Services로 붙이고 서버에서 검증합니다

구글 로그인 연동 웹 흐름 - Google Identity Services와 ID 토큰 서버 검증

예전 Google Sign-In 라이브러리는 새 프로젝트에 못 씁니다.

구글은 Google Sign-In 자바스크립트 라이브러리 지원을 2023년 3월 31일 종료했습니다. 새 클라이언트 ID의 기준은 Google Identity Services이며 스크립트는 accounts.google.com/gsi/client를 씁니다.

버튼과 One Tap은 같은 SDK에서 나옵니다.

둘 다 ID 토큰을 돌려줍니다. 다만 One Tap은 HTTPS 도메인에서만 뜹니다.

ID 토큰은 서버에서 다시 확인합니다.

구글 서명, aud가 우리 클라이언트 ID인지, iss가 허용된 Google 발급자인지, exp가 지났는지를 봅니다. 구글은 공식 라이브러리의 검증 함수를 권장합니다.

redirect_uri_mismatch, 자주 나는 오류 세 가지

redirect_uri_mismatch는 주소가 한 글자만 달라도 납니다.

http와 https, 대소문자, 끝 슬래시(/)까지 등록값과 같아야 합니다. 반영에는 5분에서 몇 시간이 걸릴 수 있습니다.

테스트 사용자 제한이 적용되는 경우

기본 신원 범위를 넘어선 권한을 테스트 중이라면 대상 메뉴의 사용자 목록을 확인합니다. 공개 전환 시에는 요청 권한에 필요한 검증과 조직 정책도 함께 살펴봅니다.

오래 안 쓴 클라이언트는 사라집니다.

6개월간 토큰 요청도 설정 변경도 없으면 자동 삭제되며 30일 전에 메일이 옵니다.

구글 로그인 연동 착수 전 체크리스트

세부 항목과 최신 적용 조건은 Google OAuth 게시 상태 안내를 참고해 보세요.


구글 계정으로 시작하는 간편한 서비스 이용

똑똑한개발자 소개

회원 가입과 인증을 하나씩 붙이다 보면 화면뿐 아니라 데이터와 운영 방식도 함께 살펴보게 됩니다. 지금 서비스에 필요한 범위부터 차근차근 정리해볼 수 있습니다.

똑똑한개발자는 UX/UI 디자인과 웹·앱 개발을 함께 진행합니다. 사용자가 이용하는 화면과 운영에 필요한 기능을 연결해 서비스를 만들어가는 과정을 돕습니다.

회원 가입과 인증을 준비하면서 궁금한 점이 있다면 아래 똑똑한개발자 링크로 편하게 이야기 남겨주세요. 함께 살펴보겠습니다. 감사합니다. :)

클립보드에 복사되었어요 ✓
이 글을 공유해보세요!