Fehler können auf 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 „scope“ vergessen haben, wird in der JavaScript-Konsole Ihres Browsers eine Fehlermeldung wie die folgende angezeigt.
OAuth-Konfigurationsfehler beheben
Um einige Fehler zu beheben, sind möglicherweise Änderungen in der Google APIs Console erforderlich.
- Erstellt eine Client-ID, falls noch nicht geschehen.
- Fügen Sie für die Pop-up-UX alle Domains hinzu, die den aktuellen Ablauf auslösen können, und geben Sie sie als
Authorized JavaScript origins
an. - Fügen Sie für die UX-Weiterleitung alle URLs hinzu, die Autorisierungsantworten erhalten können, und geben Sie
Authorized redirect URIs
an. - Konfigurieren Sie den OAuth-Zustimmungsbildschirm richtig.
- Möglicherweise müssen Sie zusätzliche Schritte ausführen, um den Google-Richtlinien für OAuth 2.0 zu entsprechen.
Ungültige OAuth-Parameterwerte
Wenn Sie ungültige Werte für OAuth-Parameter festlegen, z. B. eine ungültige Client-ID, Bereichs-IDs oder Werte für den Antworttyp, 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. Im Folgenden findest du ein Beispiel für eine OAuth-Fehlerantwort.
{ "error":"access_denied" }
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 die Einwilligung für die angeforderten Zugriffsbereiche nicht vorab konfiguriert.
Im folgenden Beispiel wird gezeigt, wie mit erfolgreichen und fehlerhaften OAuth-Antworten umgegangen wird.
function myCallback(response) {
if (response.error) {
// Handle error response
... ...
} else if (response.code) {
// Handle success code response
... ...
}
}
Nicht OAuth-Fehler
OAuth definiert das Verhalten nicht in folgenden Fällen:
- das Pop-up-Fenster nicht geöffnet wird.
- das Pop-up-Fenster geschlossen wird, bevor eine OAuth-Antwort zurückgegeben wird.
Diese Bibliothek erfasst diese Fehler und löst error_callback
aus, falls festgelegt. Prüfen Sie den Fehlertyp wie unten dargestellt. Andernfalls kann Ihre Codelogik beeinträchtigt werden, 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
});