Actualización del token de autenticación
Jutro ofrece dos métodos para la actualización automática de tokens: la renovación pasiva de tokens y la renovación silenciosa (también conocida como autenticación silenciosa o renovación activa).
Renovación pasiva de tokens
Con la renovación pasiva de tokens, el sistema verifica la validez de los tokens en cada acceso. Si el token ha caducado, lo renueva antes de devolverlo. La renovación silenciosa no quedó obsoleta, pero se recomienda pasar a la renovación pasiva.
Configuración de renovación pasiva de token
Para activar la renovación pasiva de tokens, establezca la propiedad de configuración JUTRO_AUTH_USE_PASSIVE_TOKEN_RENEWALS en true. Para obtener instrucciones más detalladas sobre la migración al método de renovación pasiva de tokens, consulte la guía de migración.
Propiedades useAuth de la renovación pasiva de tokens
Algunas de las propiedades del objeto devuelto por el gancho useAuth se comportarán de manera diferente cuando se habilite la renovación pasiva de token.
| Renovación pasiva habilitada | Renovación pasiva deshabilitada |
|---|---|
getIsAuthenticated | isAuthenticated |
getAccessToken | accessToken |
getIdToken | idToken |
getUserInfo | userInfo |
Cuando la renovación pasiva esté habilitada, los valores de isAuthenticated, accessToken, idToken y userInfo siempre serán null.
Cuando la renovación pasiva no esté habilitada, getIsAuthenticated, getAccessToken, getIdToken y getUserInfo siempre se resolverán como null y se mostrará una advertencia sobre el uso indebido.
Migración a la renovación pasiva de tokens
- Elimine las variables
JUTRO_AUTH_SILENT_REDIRECT_PATHyJUTRO_AUTH_SILENT_LOGIN_PATH, si están presentes. Estas variables son específicas del método activo con inicio de sesión silencioso y no son necesarias para el método pasivo. - Agregue
offline_accessa la variableJUTRO_AUTH_SCOPE. - Asegúrese de que la configuración de la aplicación Guidewire Hub incluya la concesión
REFRESH_TOKENen su matrizauthSettings.grantTypes. - Agregue la variable
JUTRO_AUTH_USE_PASSIVE_TOKEN_RENEWALS=true. - Reemplace los siguientes usos de propiedades desde el gancho useAuth:
| Renovación activa | Renovación pasiva |
|---|---|
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> |
Inicio de sesión silencioso
El inicio de sesión silencioso, también conocido como autenticación silenciosa o renovación activa, actualiza el token de acceso cuando el código de cliente JavaScript no puede acceder al token de actualización. Por ejemplo, esto ocurre cuando el token de actualización se establece mediante una cookie de solo Http.
Para llevar a cabo el inicio de sesión silencioso, @jutro/auth renderiza otra instancia de la aplicación en un iframe oculto mediante la ruta de inicio de sesión silenciosa. Esta instancia realiza la solicitud “autorizar” y vuelve a la ruta de redirección silenciosa, y adquiere así un nuevo token de acceso para uso en el front-end.
Si usa el cliente OIDC genérico, el inicio de sesión silencioso se debe configurar explícitamente, ya que necesita dos rutas que no se utilizan para ninguna otra funcionalidad en su aplicación.
Si desea admitir el inicio de sesión silencioso, debe establecer las siguientes variables de configuración (se muestran valores de ejemplo):
REACT_APP_JUTRO_AUTH_SILENT_REDIRECT_PATH=/auth/silent/callback
REACT_APP_JUTRO_AUTH_SILENT_LOGIN_PATH=/auth/silent/login
La renovación pasiva de token no admite el inicio de sesión silencioso. Elimine la opción de configuración JUTRO_AUTH_USE_PASSIVE_TOKEN_RENEWALS si desea utilizar el inicio de sesión silencioso. Además, no se puede utilizar ninguna propiedad de renovación pasiva de token del gancho useAuth. Consulte la sección sobre propiedades de la renovación pasiva de tokens para obtener más información.
JUTRO_AUTH_LOGIN_REQUIRED_ERROR.El error JUTRO_AUTH_LOGIN_REQUIRED_ERROR nunca se producirá mientras la renovación pasiva de token esté activa.
El método de actualización de token de renovación pasiva de token funcionará en esta situación y se puede usar como alternativa para no tener que preocuparse por los errores JUTRO_AUTH_LOGIN_REQUIRED_ERROR.