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.
Login-Button
Section titled “Login-Button”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:
sizelanguageloginClientIdredirectUriscopestate
Das Plugin bringt für dieses Web Component keine eigene JavaScript-Datei mit.
State und ursprüngliches Redirect-Ziel
Section titled “State und ursprüngliches Redirect-Ziel”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_tound Erstellungszeitpunkt
Beim Callback wird der Transient gelesen und anschließend gelöscht.
Token-Austausch
Section titled “Token-Austausch”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.
Abruf der Benutzerdaten
Section titled “Abruf der Benutzerdaten”Nach erfolgreichem Token-Austausch ruft das Plugin mit Bearer Token folgenden Endpunkt auf:
https://auth.doccheck.com/api/users/dataDie 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.
Gültigkeitsdauer
Section titled “Gültigkeitsdauer”Nach erfolgreicher Anmeldung speichert das Plugin unter fg_doccheck_auth:
created: Zeitpunkt der Anmeldungexpires: 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.
Fehlerbehandlung
Section titled “Fehlerbehandlung”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.