Google OAuth 400 오류: redirect_uri_mismatch 해결법! 액세스 차단 오류를 한 방에 해결하는 방법

너구리도토리

·

2025. 2. 17. 22:20

반응형

Google OAuth 400 오류: redirect_uri_mismatch 해결법! 액세스 차단 오류를 한 방에 해결하는 방법

🎯 서론

최근 웹 애플리케이션 개발에서 가장 중요한 부분 중 하나는 OAuth 2.0을 활용한 사용자 인증 시스템 구축입니다. 특히, Google OAuth 2.0 API를 이용하면 Gmail, YouTube, Google Drive 등 다양한 Google 서비스를 쉽게 연동할 수 있어 개발자들에게 필수적인 기술이 되었습니다. 하지만, Google 로그인 연동 과정에서 "액세스 차단됨: 이 앱의 요청이 잘못되었습니다 400 오류: redirect_uri_mismatch"라는 오류가 발생할 수 있습니다.

이 오류는 특히 처음 OAuth를 설정하는 개발자들이 자주 마주하는 문제 중 하나로, 애플리케이션이 Google의 인증 서버에서 제공한 승인된 리디렉션 URI를 제대로 등록하지 않았거나 일치하지 않는 경우 발생합니다. 즉, OAuth 2.0 인증 과정에서 사용자가 로그인한 후 다시 애플리케이션으로 돌아오는 리디렉션 URI가 Google API Console에 등록된 값과 다를 때 차단되는 것입니다.

❗ 이 오류가 발생하는 이유는?

"Oauth redirect_uri_mismatch 오류"는 크게 다음과 같은 원인으로 인해 발생할 수 있습니다.

  • 애플리케이션에서 요청한 redirect_uri 값이 Google API Console에 등록되지 않은 경우
  • redirect_uri 값이 Google API Console에 등록된 값과 정확히 일치하지 않는 경우 (공백, 슬래시, 대소문자 구분, 포트 번호 포함 여부 등)
  • OAuth 동의 화면 설정이 완료되지 않았거나, API 사용이 승인되지 않은 경우
  • http://localhost와 같은 로컬 개발 환경과 https://example.com 같은 프로덕션 환경이 다르게 설정된 경우
  • Google API Console에서 Web Application 타입이 아닌 다른 유형으로 OAuth 클라이언트를 생성한 경우

OAuth 2.0을 사용하는 애플리케이션이라면 누구나 직면할 수 있는 이 문제는, 제대로 된 해결 방법을 알고 있다면 빠르게 수정할 수 있습니다. 따라서, 이번 포스팅에서는 이 오류를 효과적으로 해결하는 방법을 단계별로 설명하고, 실수하기 쉬운 부분들을 미리 예방할 수 있도록 최적의 설정 방법을 소개하려고 합니다.

이 글을 읽고 나면,
✅ Google OAuth 2.0에서 redirect_uri_mismatch 오류가 왜 발생하는지 확실히 이해할 수 있으며,
✅ 올바른 설정 방법을 배워서 오류를 손쉽게 해결할 수 있고,
✅ 앞으로 Google 로그인 및 OAuth 인증을 더욱 원활하게 연동할 수 있습니다.

이제, 본격적으로 **"redirect_uri_mismatch 오류 해결 방법"**을 살펴보겠습니다.

1. redirect_uri의 개념과 중요성

redirect_uri는 OAuth 2.0 인증 과정에서 사용자가 인증을 완료한 후, 인증 코드 또는 토큰을 전달받기 위해 사용되는 콜백 URL을 의미합니다. 이 URI는 애플리케이션이 인증된 후 사용자를 다시 안내할 위치를 지정하며, 보안상의 이유로 사전에 Google API 콘솔에 등록되어야 합니다. 이를 통해 인증 과정에서 승인되지 않은 URI로의 리디렉션을 방지하고, 인증 토큰이 안전하게 전달되도록 합니다.

2. redirect_uri_mismatch 오류의 원인

redirect_uri_mismatch 오류는 주로 다음과 같은 상황에서 발생합니다:

  • 등록되지 않은 URI 사용: 애플리케이션에서 인증 요청 시 사용한 redirect_uri가 Google API 콘솔에 등록되어 있지 않은 경우.
  • URI 불일치: 요청에 사용된 redirect_uri와 Google API 콘솔에 등록된 URI가 정확히 일치하지 않는 경우. 여기에는 프로토콜(http vs https), 도메인, 경로, 포트 번호 등의 차이가 포함됩니다.
  • OAuth 동의 화면 설정 미완료: Google API 콘솔에서 OAuth 동의 화면 설정을 완료하지 않은 경우.

3. redirect_uri_mismatch 오류 해결 방법

이러한 오류를 해결하기 위해서는 다음과 같은 절차를 따를 수 있습니다:

  1. Google API 콘솔에서 승인된 리디렉션 URI 등록
    • API 및 서비스 > 사용자 인증 정보로 이동합니다.
    • 해당 OAuth 2.0 클라이언트 ID를 선택하거나, 새로운 클라이언트 ID를 생성합니다.
    • 승인된 리디렉션 URI 섹션에 애플리케이션에서 사용하고자 하는 모든 redirect_uri를 정확하게 입력합니다. 여기에는 개발 환경(localhost)과 프로덕션 환경의 URI를 모두 포함해야 합니다.
  2. 애플리케이션의 redirect_uri 설정 확인
    • 애플리케이션에서 OAuth 2.0 인증 요청을 보낼 때 사용되는 redirect_uri 값이 Google API 콘솔에 등록된 값과 정확히 일치하는지 확인합니다. 프로토콜, 도메인, 경로, 포트 번호 등이 모두 일치해야 합니다.
    • 예를 들어, Spring Boot 애플리케이션의 application.yml 파일에서 다음과 같이 설정할 수 있습니다:
    • yaml
      복사편집
      spring: security: oauth2: client: registration: google: client-id: YOUR_CLIENT_ID client-secret: YOUR_CLIENT_SECRET redirect-uri: https://yourdomain.com/login/oauth2/code/google scope: - email - profile
  3. OAuth 동의 화면 설정 완료
    • Google API 콘솔에서 OAuth 동의 화면을 설정하지 않으면 redirect_uri_mismatch 오류가 발생할 수 있습니다. 동의 화면에서 애플리케이션 이름, 지원 이메일, 범위 등을 설정하고 저장합니다.
    • 동의 화면 설정을 완료하지 않으면 인증 요청이 거부될 수 있으므로, 반드시 모든 필드를 정확하게 입력하고 저장해야 합니다.

4. 추가 고려 사항

  • 로컬 개발 환경과 프로덕션 환경의 URI 관리: 개발 중에는 localhost를 사용하고, 배포 시에는 실제 도메인을 사용하므로, 두 환경의 redirect_uri를 모두 Google API 콘솔에 등록해야 합니다.
  • HTTP와 HTTPS 구분: http://와 https://는 다른 URI로 인식되므로, 프로덕션 환경에서는 HTTPS를 사용하는 것이 권장됩니다.
  • 포트 번호 포함 여부: http://localhost:8080과 http://localhost는 다른 URI로 인식되므로, 정확한 포트 번호를 포함하여 등록해야 합니다.
  • URI 인코딩: 일부 프레임워크나 라이브러리는 redirect_uri를 자동으로 인코딩하거나 디코딩할 수 있으므로, 요청 시 전달되는 실제 redirect_uri 값이 Google API 콘솔에 등록된 값과 일치하는지 확인해야 합니다.

위의 절차를 따라 설정을 확인하고 수정하면 redirect_uri_mismatch 오류를 해결할 수 있습니다. 항상 애플리케이션과 Google API 콘솔의 설정이 일치하도록 유지하는 것이 중요합니다.

🔥 결론

지금까지 Google OAuth 2.0을 설정할 때 자주 발생하는 "액세스 차단됨: 이 앱의 요청이 잘못되었습니다 400 오류: redirect_uri_mismatch" 문제의 원인과 해결 방법을 상세히 살펴보았습니다. 이 오류는 주로 Google API Console에 등록된 승인된 리디렉션 URI가 애플리케이션에서 사용하는 값과 일치하지 않을 때 발생합니다. 따라서, 이를 해결하려면 다음과 같은 핵심 사항을 반드시 체크해야 합니다.

✅ Google OAuth 2.0 오류 해결 후 체크리스트

  1. Google API Console에서 승인된 redirect URI가 정확히 입력되었는가?
    • 등록된 redirect_uri 값과 실제 애플리케이션에서 사용 중인 값이 완전히 일치하는지 확인합니다.
    • 공백, http:// vs https://, 마지막 /(슬래시) 등 사소한 차이도 오류를 발생시킬 수 있습니다.
  2. 로컬 개발 환경과 프로덕션 환경을 고려했는가?
    • 개발 중이라면 http://localhost:3000 또는 http://127.0.0.1:8000 등의 URI를 Google API Console에 등록해야 합니다.
    • 배포할 경우 https://example.com/callback과 같이 프로덕션 환경의 URI를 추가해야 합니다.
  3. OAuth 동의 화면 설정이 정상적으로 완료되었는가?
    • OAuth 동의 화면을 제대로 설정하지 않으면 오류가 발생할 수 있습니다.
    • 앱 이름, 지원 이메일, 승인된 도메인 등을 Google API Console에서 확인하세요.
  4. Google API Console에서 생성한 OAuth 클라이언트 유형이 올바른가?
    • Web Application, Android, iOS 등 OAuth 클라이언트 유형이 애플리케이션과 일치하는지 확인하세요.
    • 웹 애플리케이션이라면 반드시 "Web Application" 유형을 선택해야 합니다.
  5. OAuth 2.0 라이브러리 또는 SDK를 최신 버전으로 유지하고 있는가?
    • Google OAuth 라이브러리는 지속적으로 업데이트됩니다.
    • google-auth-library 또는 관련 패키지가 최신 버전인지 확인하고 필요하면 업데이트하세요.

💡 OAuth 인증 시스템을 구축할 때 추가로 고려할 사항

이 오류를 해결한 후에도, OAuth 인증 시스템을 더욱 안전하고 효율적으로 운영하기 위해 다음과 같은 사항들을 고려하는 것이 좋습니다.

  • JWT(Json Web Token) 기반 인증을 추가적으로 활용하여 로그인 유지 관리 최적화
  • CSRF(교차 사이트 요청 위조) 방지 및 보안 강화
  • OAuth 토큰 유효 기간 관리 및 자동 갱신 구현
  • 로그인 실패 시 사용자에게 명확한 피드백을 제공하는 에러 핸들링 로직 추가

이처럼 OAuth 2.0을 연동하는 과정에서 발생하는 redirect_uri_mismatch 오류는 많은 개발자들이 처음 겪는 난관이지만, 정확한 원인 분석과 해결 방법을 알면 비교적 쉽게 수정할 수 있습니다.

이제 여러분의 Google OAuth 2.0 인증 시스템이 원활하게 작동할 것이며, 앞으로는 redirect_uri_mismatch 오류 없이 Google 로그인 기능을 성공적으로 구현할 수 있을 것입니다. 🚀🔥

✨ 마지막 TIP: OAuth 설정을 변경한 후에도 문제가 지속된다면?

✔ 브라우저 캐시를 삭제하고 다시 시도해 보세요.
✔ Google API Console에서 클라이언트 ID를 새로 생성하고 다시 설정해 보세요.
✔ OAuth 로그를 남겨서 redirect_uri 요청이 실제로 어떻게 전달되고 있는지 확인해 보세요.

이제, Google OAuth 2.0 설정을 더욱 안정적이고 안전하게 구축해 보세요! 😉

반응형

💖 저자에게 암호화폐로 후원하기 💖

아이콘을 클릭하면 지갑 주소가자동으로 복사됩니다