Saltar al contenido principal

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 habilitadaRenovación pasiva deshabilitada
getIsAuthenticatedisAuthenticated
getAccessTokenaccessToken
getIdTokenidToken
getUserInfouserInfo

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​

  1. Elimine las variables JUTRO_AUTH_SILENT_REDIRECT_PATH y JUTRO_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.
  2. Agregue offline_access a la variable JUTRO_AUTH_SCOPE.
  3. Asegúrese de que la configuración de la aplicación Guidewire Hub incluya la concesión REFRESH_TOKEN en su matriz authSettings.grantTypes.
  4. Agregue la variable JUTRO_AUTH_USE_PASSIVE_TOKEN_RENEWALS=true.
  5. Reemplace los siguientes usos de propiedades desde el gancho useAuth:
Renovación activaRenovación pasiva
isAuthenticated: boolean | nullgetIsAuthenticated: () => Promise<boolean | null>
accessToken: string | nullgetAccessToken: () => Promise<string | null>
idToken: string | nullgetIdToken: () => Promise<string | null>
userInfo: OidcUserInfo | nullgetUserInfo: () => 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.

Note: La ruta de devolución de llamada también debe declararse en el lado del IdP como una ruta de redirección válida.

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.

Note: Si el navegador del usuario está bloqueando las cookies de terceros mientras se utiliza el inicio de sesión silencioso, emitirá un error 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.