Saltar al contenido

KEYCLOAK: el token de actualización/actualización no funciona

Te traemos el resultado a esta obstáculo, o por lo menos eso esperamos. Si sigues con interrogantes puedes escribirlo en el apartado de preguntas y sin dudarlo te ayudaremos

Solución:

No pude encontrarlo explicado en los documentos de la API, pero el timeout argumento de keycloak.updateToken() función se expresa en segundosno en minutos.

Entonces si el Vida útil del token de acceso en el servidor tiene el valor predeterminado de 5 minutos, debe usar un valor inferior a 300 segundos. Lo aprendí haciendo algunos experimentos.

//Update the token when will last less than 3 minutes
keycloak.updateToken(180)

Por cierto, te sugiero que uses un Esperanza de vida más de 5 minutos para el token.

En su código, nunca ve el token actualizado porque la actualización nunca se activa en la ventana de 15 segundos en la que funcionará.

(actualizado) regresa false solo si su token no ha caducado. Así que estás tratando de actualizar el token cuando aún no haya expirado.

establezca “Vida útil del token de acceso” en 1 minuto en el Reino de la capa de llaves está usando, luego intente el siguiente código para verificar el estado de actualización nuevamente

keycloak.onTokenExpired = ()=>
            console.log('expired '+new Date());
            keycloak.updateToken(50).success((refreshed)=>
                if (refreshed)
                    console.log('refreshed '+new Date());
                else 
                    console.log('not refreshed '+new Date());
                
            ).error(() => 
                 console.error('Failed to refresh token '+new Date());
            );
            

Echo un vistazo a su código de muestra:

        /**
     * If the token expires within `minValidity` seconds, the token is refreshed.
     * If the session status iframe is enabled, the session status is also
     * checked.
     * @returns A promise to set functions that can be invoked if the token is
     *          still valid, or if the token is no longer valid.
     * @example
     * ```js
     * keycloak.updateToken(5).success(function(refreshed) 
     *   if (refreshed) 
     *     alert('Token was successfully refreshed');
     *    else 
     *     alert('Token is still valid');
     *   
     * ).error(function() 
     *   alert('Failed to refresh the token, or the session has expired');
     * );
     */

Entonces creo que su token sigue siendo válido, es por eso que el updateToken devuelve false.

Aquí puedes ver las reseñas y valoraciones de los lectores

Si para ti ha resultado de ayuda este artículo, agradeceríamos que lo compartas con el resto juniors de esta forma contrubuyes a difundir nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *