Skip to content

DocCheck OAuth2

FG DocCheck WP verwendet DocCheck Login Access mit einem OAuth2-Authorization-Code-Ablauf. Der sichtbare Login-Button wird als externes Web Component eingebunden; Token-Austausch und Abruf der Benutzerdaten erfolgen serverseitig über WordPress.

Der Shortcode [fg_doccheck_login] lädt bei vorhandener Client-ID:

<script src="https://dccdn.de/static.doccheck.com/components/login-button/@latest/main.js"></script>

Anschließend rendert das Plugin ein dc-login-button-Element mit:

  • size
  • language
  • loginClientId
  • redirectUri
  • scope
  • state

Das Plugin bringt für dieses Web Component keine eigene JavaScript-Datei mit.

Vor dem Rendern des Login-Buttons erzeugt das Plugin einen zufälligen State-Wert mit wp_generate_password(32, false, false).

Zu diesem State wird das gewünschte Redirect-Ziel als WordPress-Transient gespeichert:

  • Schlüsselpräfix: fg_doccheck_state_
  • Gültigkeit: 15 Minuten
  • gespeicherte Werte: redirect_to und Erstellungszeitpunkt

Beim Callback wird der Transient gelesen und anschließend gelöscht.

Wenn ein Request den Query-Parameter code enthält, verarbeitet das Plugin den OAuth2-Code. Für den Token-Austausch sendet WordPress einen POST-Request an:

https://auth.doccheck.com/token

Übertragen werden:

  • grant_type=authorization_code
  • Client-ID
  • Client-Secret
  • Redirect URI
  • Authorization Code

Der Request hat ein Timeout von 20 Sekunden.

Nach erfolgreichem Token-Austausch ruft das Plugin mit Bearer Token folgenden Endpunkt auf:

https://auth.doccheck.com/api/users/data

Die JSON-Antwort wird als Array übernommen und vollständig in der PHP-Session unter fg_doccheck_user gespeichert.

Das Plugin wertet die einzelnen zurückgegebenen Felder im aktuellen Code nicht weiter aus.

Nach erfolgreicher Anmeldung speichert das Plugin unter fg_doccheck_auth:

  • created: Zeitpunkt der Anmeldung
  • expires: Ablaufzeitpunkt

Der Ablaufzeitpunkt basiert auf der Einstellung Login gültig für. Standard sind 12 Stunden.

Nach Ablauf entfernt das Plugin den DocCheck-Authentifizierungsstatus und die gespeicherten DocCheck-Benutzerdaten aus der Session.

Schlägt der Token-Austausch oder der Abruf der Benutzerdaten fehl, beendet das Plugin die Anfrage mit einer WordPress-Fehlerseite und HTTP-Status 403.

Weitere typische Ursachen stehen unter Fehlerbehebung.