Skip to content

Commit

Permalink
Merge pull request #37 from vzakharchenko/UMA_request_without_refresh…
Browse files Browse the repository at this point in the history
…_token

support uma requests without refresh_token
  • Loading branch information
vzakharchenko committed Apr 29, 2021
2 parents f6c39cf + a35fe15 commit f720411
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions src/clientAuthorization.js
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ async function keycloakRefreshToken(token, options) {
options.clientId || keycloakJson.resource, options);
}
} catch (e) {
console.error(`wrong refresh token for ${realmName}`, e);
options.logger.error(`wrong refresh token for ${realmName}`, e);
tokenJson = null;
}
}
Expand Down Expand Up @@ -148,13 +148,20 @@ async function getRPT(uma2Config, token, clientId, options) {
tkn.decodedAccessToken = jsonwebtoken.decode(tkn.access_token);
tkn.decodedRefreshToken = jsonwebtoken.decode(tkn.refresh_token);
await options.cache.put('rpt', key, JSON.stringify(tkn), tkn.refresh_expires_in);
} else if (isExpired(options, JSON.parse(tkn).decodedAccessToken)) {
tkn = await keycloakRefreshToken(JSON.parse(tkn), options);
tkn.decodedAccessToken = jsonwebtoken.decode(tkn.access_token);
tkn.decodedRefreshToken = jsonwebtoken.decode(tkn.refresh_token);
await options.cache.put('rpt', key, JSON.stringify(tkn), tkn.refresh_expires_in);
} else {
tkn = JSON.parse(tkn);
const parseToken = JSON.parse(tkn);
if (isExpired(options, parseToken.decodedAccessToken)) {
if (parseToken.refresh_token) {
tkn = await keycloakRefreshToken(parseToken, options);
} else {
tkn = await exchangeRPT(token.tokenString, clientId, options);
}
tkn.decodedAccessToken = jsonwebtoken.decode(tkn.access_token);
tkn.decodedRefreshToken = jsonwebtoken.decode(tkn.refresh_token);
await options.cache.put('rpt', key, JSON.stringify(tkn), tkn.refresh_expires_in);
} else {
tkn = parseToken;
}
}
return tkn;
}
Expand Down

0 comments on commit f720411

Please sign in to comment.