Hola a todos, tengo un problema con el token de actualización de keycloack y la biblioteca keycloack-js v16.1.1, dentro de mi aplicación tengo que hacer que una página sea accesible públicamente, para hacer todo, creo la instancia de keycloak y la asigno en un complemento de Vue por mí mismo. creado en el archivo de autorización.js:
// file authorization.js const AuthPluginKeycloak = { install() { Vue.$keycloak = keycloak; } } AuthPluginKeycloak.install = Vue => { Vue.$keycloak = keycloak; Object.defineProperties(Vue.prototype, { $keycloak:{ get() { return keycloak; } } }) }Luego tuve que mover el inicio de la biblioteca desde la página principal a la página de inicio de sesión. Sin embargo, dejé el token de actualización dentro de main.js con un setInterval de 170000 y configuré la actualización en 150 segundos considerando que el token caduca en 300 s:
// main.js setInterval(() => { Vue.$keycloak.updateToken(150) .then( async (refreshed) => { if (refreshed) { store.commit("updateIsLoggedIn", true); store.commit( "updateRefreshToken", this.$keycloak.refreshToken ); store.commit( "updateToken", Vue.$keycloak.idToken ); console.log('Token refreshed '+ refreshed); http.defaults.headers.common = { 'Authorization': `Bearer ${ await Vue.$keycloak.idToken }` } } else { console.warn('Token not refreshed, valid for ' + Math.round(Vue.$keycloak.tokenParsed.exp + Vue.$keycloak.timeSkew - new Date().getTime() / 1000) + ' seconds'); } }).catch(()=>{ store.commit("updateIsLoggedIn", false); store.commit("updateOrganizationGuid", ""); console.error('Failed to refresh token'); }); }, 170000 );todo funciona bien, incluido el token de actualización, hasta que realizo una recarga de la página, momento en el que el token de actualización ya no funciona, ¿podría ayudarme, por favor? No sé a dónde acudir.
Gracias.