comment refresh token
continuous-integration/drone/push Build is passing

This commit is contained in:
2026-04-19 11:02:43 +01:00
parent 7a4ebad9e2
commit 189355174c
+35 -35
View File
@@ -1,41 +1,41 @@
/** // /**
* TOKEN REFRESHER // * TOKEN REFRESHER
* Logic: Silent background token rotation. // * Logic: Silent background token rotation.
* Role: Communicates with Keycloak to exchange a Refresh Token for a new Access Token. // * Role: Communicates with Keycloak to exchange a Refresh Token for a new Access Token.
*/ // */
import { keycloakConfig } from './keycloak-config'; // import { keycloakConfig } from './keycloak-config';
export const refreshAccessToken = async (token: any) => { // export const refreshAccessToken = async (token: any) => {
try { // try {
const url = `${process.env.KEYCLOAK_ISSUER_URL}/realms/${process.env.KEYCLOAK_REALM}/protocol/openid-connect/token`; // const url = `${process.env.KEYCLOAK_ISSUER_URL}/realms/${process.env.KEYCLOAK_REALM}/protocol/openid-connect/token`;
const response = await fetch(url, { // const response = await fetch(url, {
method: 'POST', // method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, // headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({ // body: new URLSearchParams({
client_id: keycloakConfig.clientId, // client_id: keycloakConfig.clientId,
client_secret: keycloakConfig.clientSecret, // client_secret: keycloakConfig.clientSecret,
grant_type: 'refresh_token', // grant_type: 'refresh_token',
refresh_token: token.refreshToken, // refresh_token: token.refreshToken,
}), // }),
}); // });
const refreshedTokens = await response.json(); // const refreshedTokens = await response.json();
if (!response.ok) throw refreshedTokens; // if (!response.ok) throw refreshedTokens;
return { // return {
...token, // ...token,
accessToken: refreshedTokens.access_token, // accessToken: refreshedTokens.access_token,
accessTokenExpires: Date.now() + refreshedTokens.expires_in * 1000, // accessTokenExpires: Date.now() + refreshedTokens.expires_in * 1000,
refreshToken: refreshedTokens.refresh_token ?? token.refreshToken, // Fallback to old refresh token // refreshToken: refreshedTokens.refresh_token ?? token.refreshToken, // Fallback to old refresh token
}; // };
} catch (error) { // } catch (error) {
console.error('Error refreshing access token', error); // console.error('Error refreshing access token', error);
return { // return {
...token, // ...token,
error: 'RefreshAccessTokenError', // error: 'RefreshAccessTokenError',
}; // };
} // }
}; // };