[OAuth] Google OAuth2.0 등록하기

지혜·2025년 4월 17일
post-thumbnail

프로젝트에서 소셜 로그인을 도입하려면 사전에 해당 OAuth를 제공하는 서비스에 등록이 필요합니다.
카카오, 네이버 등등 다양한 서비스가 존재하지만 그 중에서 google OAuth를 등록하는 과정을 정리하고자 합니다.


0. Google Cloud Console 준비

Google의 경우 자체적인 cloud console에서 OAuth API를 제공합니다.
Google OAuth를 설정하려면, 먼저
[OAuth 동의 화면] → [시작하기(Get started)] 버튼을 눌러 초기 설정을 시작합니다.

1. 프로젝트 생성

앱이름 : OAuth를 등록할 프로젝트 이름을 입력합니다.
사용자 지원 이메일 : OAuth 인증 과정에서 사용자가 예기치 못한 문제가 생겼을때, 문의할 수 있는 주소를 입력합니다.

  • 일반 사용자에게 노출되는 메일로, Google Cloud Console에 등록된 주소 중에서 선택할 수 있습니다.
  • 실서비스의 경우 대표 이메일을 사용하는 것이 좋습니다.

2. 내부 vs 외부 애플리케이션 선택

내부: 외부에 공개되지 않고 특정 집단(회사, 학교 등)의 사용자만 접근 가능한 경우를 의미합니다.
외부: Google 계정만 있으면 누구나 접근하여 사용할 수 있는 경우를 의미합니다.

  • 테스트용이라면 외부를 선택 후, 테스트 Gmail 등록 를 등록해야합니다.
  • 실제 서비스를 운영하는 경우라면 외부를 선택후 추후 퍼블릭 게시 승인 절차가 필요합니다.

3. 앱 개발자 연락처 입력

  • google에서 앱 관련 문의 시 또는 보안 등의 내용을 전달할 때 사용하는 개발자 연락처 입니다.
  • 외부에 노출되지 않기 때문에 개인 email을 사용해도 무방합니다.
  • Gmail이외의 메일도 사용 가능합니다.

4. 애플리케이션 유형 선택


해당 유형의 경우 프로젝트의 인증 구조에 적합한 유형을 선택합니다. 저의 경우 서버에서 Google과 직접 통신하고, 인증 후 redirect URL로 응답을 처리하기 때문에 **Web application**을 선택했습니다.

그외의 유형은 다음과 같습니다.

Application Type설명대표 사용 예시
Web application✅ 웹 서버 기반 애플리케이션에서 사용. Redirect URI를 통해 OAuth 인증 처리Spring Boot, Node.js, Django 등
AndroidAndroid 앱에서 OAuth 사용 시. SHA1 인증서 지문 필요네이티브 Android 앱, Kotlin/Java 앱
Chrome Extension크롬 확장에서 OAuth를 사용하는 경우Gmail 확장, Google 캘린더 확장
iOSiOS 앱에서 OAuth 사용. 번들 ID, Apple Team ID 필요Swift 기반 iOS 앱
TVs and Limited Input devices입력 장치가 제한된 환경에서 사용. 코드 인증 방식Smart TV, 게임 콘솔 등
Desktop appPC 클라이언트 앱에서 OAuth 사용. 리디렉션 대신 로컬서버 또는 장치코드 사용Electron, JavaFX, Python, .NET 앱
Universal Windows Platform (UWP)Windows 스토어 앱(UWP) 전용Microsoft UWP 앱

5. OAuth 클라이언트 이름

  • Google Cloud Console 내부에서 해당 OAuth 클라이언트를 식별하기 위한 이름입니다.
  • 사용자에게는 노출되지 않으므로 자유롭게 작성 가능합니다.
  • 예시:
    • myapp-google-localhost
    • myapp-google-prod

OAuth 클라이언트가 등록 완료된 모습입니다.

6. Redirect URI 등록

💡 등록 위치: API 및 서비스 > 사용자 인증 정보 > OAuth 클라이언트 ID 메뉴

  • Google이 인가 코드 또는 토큰을 전달할 때 사용되는 콜백 주소입니다.
  • 경로 및 포트 번호까지 정확히 일치해야하며, 등록한 URI와 조금이라도 다르면 인증에 실패합니다.
  • 등록된 URI는 별도의 승인절차 없이 즉시 반영됩니다.

등록 예시

http://localhost:8080/api/v2/auth/callback
https://yourdomain.com/api/v2/auth/callback

⚠️ 리다이렉트 URI 작성 시 주의사항

  • www의 포함 여부도 다른 URI로 간주되므로 반드시 정확히 입력해야 합니다.
  • 실제 리디렉션이 발생하는 정확한 경로 전체를 그대로 입력해야 합니다.
예시)

https://example.com/callback
https://www.example.com/callback  ← 완전히 다른 URI로 처리됨

7. Authorized JavaScript Origins

  • 브라우저가 Google에 직접 OAuth 요청을 보내는 경우, google에서 해당 요청의 경로가 사용자가 사전에 등록한 도메인인지 검증하는 역할을 합니다.
  • 등록되지 않은 경로의 요청인 경우 보안상 거부됩니다.
  • 서버를 거치지 않고 클라이언트(프론트)에서 직접 코드 및 토큰을 요청/발급받는 구조에서 사용합니다.

🤔 언제 등록이 필요할까?

✅ 필요한 경우: 클라이언트가 직접 Google OAuth 요청을 보낼 때
❌ 필요하지 않은 경우: 서버가 OAuth 요청 및 처리를 담당하고, 클라이언트는 단순히 리디렉션을 받는 구조일 때

따라서 저의 경우, 클라이언트로부터 전달받은 인가 코드를 이용해 서버에서 Google에 access/refresh token을 요청하는 구조이기 때문에 해당 항목은 따로 작성하지 않았습니다.


이 글에서는 Google OAuth를 적용하기 위한 콘솔 설정 및 등록 과정을 정리했습니다.
다음 글에서는 실제 Google OAuth를 코드에 적용하는 과정을 작성할 예정입니다.

0개의 댓글