Aktualisierung von Authentifizierungstoken
Jutro bietet zwei Ansätze zur automatischen Token-Aktualisierung: passive Token-Erneuerung und automatische Erneuerung (auch als unbeaufsichtigte Authentifizierung oder aktive Erneuerung bezeichnet).
Passive Token-Erneuerung
Bei der passiven Token-Erneuerung wird die Token-Gültigkeit im System bei jedem Zugriff geprüft. Wenn das Token abgelaufen ist, wird es vor der Rückgabe erneuert. Die automatische Erneuerung wird nicht verworfen, es wird jedoch empfohlen, zur passiven Erneuerung zu wechseln.
Konfiguration der passiven Token-Erneuerung
Zum Aktivieren der passiven Token-Erneuerung legen Sie die Konfigurationseigenschaft JUTRO_AUTH_USE_PASSIVE_TOKEN_RENEWALS auf true fest. Ausführlichere Anweisungen zur Migration zur passiven Token-Erneuerung finden Sie im Migrationshandbuch.
Eigenschaften von „useAuth“ bei der passiven Token-Erneuerung
Einige der Eigenschaften im Objekt, die vom useAuth-Hook zurückgegeben werden, verhalten sich anders, wenn die passive Token-Erneuerung aktiviert ist.
| Passive Erneuerung aktiviert | Passive Erneuerung deaktiviert |
|---|---|
getIsAuthenticated | isAuthenticated |
getAccessToken | accessToken |
getIdToken | idToken |
getUserInfo | userInfo |
Wenn die passive Erneuerung aktiviert ist, sind die Werte von isAuthenticated, accessToken, idToken und userInfo immer null.
Wenn die passive Erneuerung nicht aktiviert ist, werden getIsAuthenticated, getAccessToken, getIdToken und getUserInfo immer zu null aufgelöst, und es wird eine Warnung zu unsachgemäßer Verwendung angezeigt.
Migrieren zur passiven Token-Erneuerung
- Entfernen Sie die Variablen
JUTRO_AUTH_SILENT_REDIRECT_PATHundJUTRO_AUTH_SILENT_LOGIN_PATH(falls vorhanden). Diese Variablen sind spezifisch für den aktiven Ansatz mit unbeaufsichtigter Anmeldung und werden für den passiven Ansatz nicht benötigt. - Fügen Sie
offline_accesszur VariableJUTRO_AUTH_SCOPEhinzu. - Stellen Sie sicher, dass die Guidewire Hub-Anwendungskonfiguration die Berechtigung
REFRESH_TOKENimauthSettings.grantTypes-Array enthält. - Variable
JUTRO_AUTH_USE_PASSIVE_TOKEN_RENEWALS=truehinzufügen. - Ersetzen Sie die folgenden Verwendungen von Eigenschaften aus dem useAuth-Hook:
| Aktive Verlängerung | Passive Verlängerung |
|---|---|
isAuthenticated: boolean | null | getIsAuthenticated: () => Promise<boolean | null> |
accessToken: string | null | getAccessToken: () => Promise<string | null> |
idToken: string | null | getIdToken: () => Promise<string | null> |
userInfo: OidcUserInfo | null | getUserInfo: () => Promise<OidcUserInfo | null> |
Automatische Anmeldung
Bei der automatischen Anmeldung, auch als unbeaufsichtigte Authentifizierung oder aktive Erneuerung bezeichnet, wird das Zugriffstoken aktualisiert, wenn über den JavaScript-Client-Code nicht auf das Aktualisierungstoken zugegriffen werden kann Dies ist z. B. der Fall, wenn das Aktualisierungstoken durch ein Http-Only-Cookie festgelegt wird.
Zur Durchführung der automatischen Anmeldung rendert @jutro/auth eine andere Instanz Ihrer Anwendung in einem verborgenen iframe unter Verwendung des Pfads für die automatische Anmeldung. Diese Instanz führt die „authorize“-Anforderung aus und kehrt zum unbeaufsichtigten Umleitungspfad zurück, wobei ein neues Zugriffstoken zur Verwendung im Frontend abgerufen wird.
Bei Verwendung des generischen OIDC-Clients muss die automatische Anmeldung explizit konfiguriert werden, da zwei Routen erforderlich sind, die für keine andere Funktion in der Anwendung verwendet werden.
Zur Unterstützung der automatischen Anmeldung müssen Sie die folgenden Konfigurationsvariablen festlegen (mit Beispielwerten):
REACT_APP_JUTRO_AUTH_SILENT_REDIRECT_PATH=/auth/silent/callback
REACT_APP_JUTRO_AUTH_SILENT_LOGIN_PATH=/auth/silent/login
Die passive Token-Erneuerung unterstützt keine automatische Anmeldung. Entfernen Sie die Konfigurationsoption JUTRO_AUTH_USE_PASSIVE_TOKEN_RENEWALS, wenn Sie die automatische Anmeldung verwenden möchten. Außerdem können keine passiven Tokenerneuerungseigenschaften aus dem useAuth-Hook verwendet werden. Weitere Informationen finden Sie im Abschnitt Eigenschaften der passiven Tokenerneuerung.
JUTRO_AUTH_LOGIN_REQUIRED_ERROR-Fehler ausgegeben.Der JUTRO_AUTH_LOGIN_REQUIRED_ERROR-Fehler tritt nie auf, wenn die passive Token-Erneuerung aktiviert ist.
Der Ansatz zur Token-Aktualisierung Passive Token-Erneuerung funktioniert in diesem Szenario und kann als Alternative verwendet werden, um JUTRO_AUTH_LOGIN_REQUIRED_ERROR-Fehler zu vermeiden.