Błędy mogą występować w różnych warstwach. W zależności od tego, gdzie wystąpił błąd, możesz otrzymać powiadomienie na różne sposoby.
Brak wymaganych parametrów OAuth
Jeśli zapomnisz ustawić wymagane parametry OAuth, takie jak client_id lubscope, w konsoli JavaScript swojej przeglądarki zobaczysz komunikat o błędzie podobny do poniższego.
Naprawianie błędów konfiguracji protokołu OAuth
Do naprawienia niektórych błędów może być konieczne wprowadzenie zmian w konsoli interfejsów API Google.
- Tworzy identyfikator klienta, jeśli jeszcze nie jest.
- W przypadku wyskakującego okienka dodaj wszystkie domeny, które mogą aktywować bieżący proces do
Authorized JavaScript origins
. - W przypadku przekierowania UX dodaj do
Authorized redirect URIs
wszystkie adresy URL, które mogą otrzymywać odpowiedzi autoryzacji. - Prawidłowo skonfiguruj ekran zgody OAuth.
- W razie potrzeby prześlij aplikację do weryfikacji.
- Może być konieczne wykonanie dodatkowych czynności w celu zachowania zgodności z zasadami Google dotyczącymi protokołu OAuth 2.0.
Nieprawidłowe wartości parametru OAuth
Jeśli ustawisz nieprawidłowe wartości parametrów OAuth, takie jak nieprawidłowy identyfikator klienta, identyfikatory zakresu lub wartości typu odpowiedzi, zobaczysz stronę błędu OAuth.
Odpowiedzi na błędy OAuth
OAuth może zwrócić odpowiedź o błędzie. W takim przypadku funkcja callback
zostanie aktywowana z odpowiedzią o błędzie jako parametrem. Poniżej znajdziesz przykładową odpowiedź na błąd OAuth.
{ "error":"access_denied" }
Poniżej przedstawiamy niektóre przykłady.
- Użytkownik odrzuca żądanie OAuth.
- W przypadku żądania OAuth z parametrem
prompt=none
użytkownik nie został jeszcze uwierzytelniony i nie wyraził wstępnie zgody na żądane zakresy.
Przykład poniżej pokazuje, jak postępować w przypadku powodzenia i błędu odpowiedzi OAuth.
function myCallback(response) {
if (response.error) {
// Handle error response
... ...
} else if (response.code) {
// Handle success code response
... ...
}
}
Błędy inne niż OAuth
OAuth nie określa zachowań, gdy:
- nie otwiera się wyskakujące okienko.
- Wyskakujące okienko zostanie zamknięte, zanim zostanie zwrócona odpowiedź OAuth.
Ta biblioteka rejestruje te błędy i aktywuje error_callback
, jeśli jest ustawiony. Sprawdź typ błędu taki jak poniżej. Jeśli tego nie zrobisz, obsługa nowych typów błędów w tej bibliotece może się zmienić.
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
});