오류는 여러 레이어에서 발생할 수 있습니다. 오류가 발생한 위치에 따라 알림이 다르게 표시될 수 있습니다.
필수 OAuth 매개변수 누락
client_id 또는 범위와 같은 필수 OAuth 매개변수를 설정하지 않으면 브라우저의 JavaScript 콘솔에 아래와 같은 오류 메시지가 표시됩니다.
OAuth 구성 오류 수정
일부 오류를 해결하려면 Google API 콘솔을 변경해야 할 수 있습니다.
- 아직 없는 경우 클라이언트 ID를 만듭니다.
- 팝업 UX의 경우 현재 흐름을 트리거할 수 있는 모든 도메인을
Authorized JavaScript origins
에 추가합니다. - 리디렉션 UX의 경우 승인 응답을 받을 수 있는 모든 URL을
Authorized redirect URIs
에 추가합니다. - OAuth 동의 화면을 올바르게 구성합니다.
- 필요한 경우 인증을 위해 앱을 제출합니다.
- Google OAuth 2.0 정책을 준수하기 위해 추가 단계를 수행해야 할 수도 있습니다.
잘못된 OAuth 매개변수 값
잘못된 클라이언트 ID, 범위 식별자 또는 응답 유형 값과 같은 잘못된 값을 OAuth 매개변수로 설정하면 OAuth 오류 페이지가 표시됩니다.
OAuth 오류 응답
OAuth에서 오류 응답을 반환할 수 있습니다. 이 경우 callback
함수가 오류 응답을 매개변수로 사용하여 트리거됩니다. 다음은 OAuth 오류 응답의 예입니다.
{ "error":"access_denied" }
다음은 몇 가지 예입니다.
- 사용자가 OAuth 요청을 거부합니다.
prompt=none
매개변수가 있는 OAuth 요청의 경우 사용자는 아직 인증되지 않았으며 요청된 범위에 대한 동의를 사전 구성하지 않았습니다.
아래 예는 성공 및 오류 OAuth 응답을 처리하는 방법을 보여줍니다.
function myCallback(response) {
if (response.error) {
// Handle error response
... ...
} else if (response.code) {
// Handle success code response
... ...
}
}
OAuth 외 오류
다음과 같은 경우 OAuth는 동작을 정의하지 않습니다.
- 팝업 창이 열리지 않습니다.
- OAuth 응답이 반환되기 전에 팝업 창이 닫힙니다.
이 라이브러리는 이러한 오류를 캡처하고 설정된 경우 error_callback
를 트리거합니다. 아래와 같이 오류 유형을 확인하세요. 그러지 않으면 이 라이브러리가 나중에 새 오류 유형을 지원할 때 코드 로직이 영향을 받을 수 있습니다.
function myErrorCallback(err) {
if (err.type == 'popup_failed_to_open') {
// The popup window is failed to open
... ...
} else if (err.type == 'popup_closed') {
// The popup window is closed before an OAuth response is returned
... ...
}
}
const client = google.accounts.oauth2.initCodeClient({
client_id: 'YOUR_GOOGLE_CLIENT_ID',
scope: 'https://www.googleapis.com/auth/calendar.readonly',
ux_mode: 'popup',
callback: myCallback,
error_callback: myErrorCallback
});