Fehler können in verschiedenen Ebenen auftreten. Je nachdem, wo der Fehler auftritt, werden Sie möglicherweise auf unterschiedliche Weise benachrichtigt.
Erforderliche OAuth-Parameter fehlen
Wenn Sie die erforderlichen OAuth-Parameter wie client_id oder den Bereich vergessen haben, wird in der JavaScript-Konsole Ihres Browsers eine Fehlermeldung wie unten angezeigt.
OAuth-Konfigurationsfehler beheben
Möglicherweise sind Änderungen in der Google APIs-Konsole erforderlich, um einige Fehler zu beheben.
- Erstellt eine Client-ID, falls noch nicht geschehen.
- Für Pop-up-UX fügen Sie alle Domains, die den aktuellen Ablauf auslösen können, zu
Authorized JavaScript origins
hinzu. - Für die Weiterleitung fügen Sie alle URLs, die Autorisierungsantworten erhalten können, zu
Authorized redirect URIs
hinzu. - Konfigurieren Sie den OAuth-Zustimmungsbildschirm ordnungsgemäß.
- Möglicherweise müssen Sie zusätzliche Schritte ausführen, um die OAuth 2.0-Richtlinien von Google einzuhalten.
Ungültige OAuth-Parameterwerte
Wenn Sie OAuth-Parameter als ungültige Werte festlegen, z. B. ungültige Client-ID, Bereichskennungen oder Antworttypwerte, wird die OAuth-Fehlerseite angezeigt.
OAuth-Fehlerantworten
OAuth kann eine Fehlerantwort zurückgeben. In diesem Fall wird die Funktion callback
mit der Fehlerantwort als Parameter ausgelöst. Hier sehen Sie ein Beispiel für eine OAuth-Fehlerantwort.
{ "error":"access_denied" }
Im Folgenden finden Sie einige Beispiele.
- Der Nutzer lehnt die OAuth-Anfrage ab.
- Bei einer OAuth-Anfrage mit dem Parameter
prompt=none
ist der Nutzer noch nicht authentifiziert und hat keine vorkonfigurierte Einwilligung für die angeforderten Bereiche.
Das folgende Beispiel zeigt, wie die OAuth-Antworten für Erfolg und Fehler verarbeitet werden.
function myCallback(response) {
if (response.error) {
// Handle error response
... ...
} else if (response.code) {
// Handle success code response
... ...
}
}
Nicht-OAuth-Fehler
OAuth definiert das Verhalten in folgenden Fällen nicht:
- das Pop-up-Fenster nicht geöffnet wird.
- wird das Pop-up-Fenster geschlossen, bevor eine OAuth-Antwort zurückgegeben wird.
Diese Bibliothek erfasst diese Fehler und löst das error_callback
aus, sofern festgelegt. Überprüfen Sie den Fehlertyp wie unten beschrieben. Andernfalls kann sich dies auf Ihre Codelogik auswirken, wenn diese Bibliothek später neue Fehlertypen unterstützt.
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
});