Skip to content

Commit b6dba3f

Browse files
committed
feat: update keycloak to match new ver reqs
1 parent 83edfbc commit b6dba3f

File tree

3 files changed

+20
-26
lines changed

3 files changed

+20
-26
lines changed

backend/src/app.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ function addLoginPassportUse(
122122
_issuer,
123123
profile,
124124
_context,
125-
_idToken,
125+
idToken,
126126
accessToken,
127127
refreshToken,
128128
done
@@ -143,6 +143,7 @@ function addLoginPassportUse(
143143
profile.jwtFrontend = auth.generateUiToken();
144144
profile.jwt = accessToken;
145145
profile._json = userInfo;
146+
profile.idToken = idToken;
146147
profile.refreshToken = refreshToken;
147148
log.info(`Passport | Access token: { ${accessToken} }`);
148149
try {

backend/src/components/auth.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const auth = {
2626
},
2727

2828
// Check if JWT Refresh Token has expired
29-
isRenewable(token, context = 'NA') {
29+
isRenewable(token) {
3030
const now = Date.now().valueOf() / 1000;
3131
const payload = jsonwebtoken.decode(token);
3232
if (!payload.iat || typeof payload.iat === 'undefined') {
@@ -60,7 +60,7 @@ const auth = {
6060
client_secret: config.get('oidc:clientSecret'),
6161
grant_type: 'refresh_token',
6262
refresh_token: refreshToken,
63-
scope: discovery.scopes_supported,
63+
scope: 'openid profile',
6464
}),
6565
{
6666
headers: {
@@ -166,7 +166,7 @@ const auth = {
166166
client_id: config.get('oidc:clientId'),
167167
client_secret: config.get('oidc:clientSecret'),
168168
grant_type: 'client_credentials',
169-
scope: discovery.scopes_supported,
169+
scope: 'openid profile',
170170
}),
171171
{
172172
headers: {

backend/src/routes/auth.js

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ function addBaseRouterGet(strategyName, callbackURI) {
7575
callbackURI,
7676
passport.authenticate(strategyName, {
7777
failureRedirect: 'error',
78+
scope: 'openid profile'
7879
})
7980
);
8081
}
@@ -88,38 +89,30 @@ addBaseRouterGet(
8889

8990
//removes tokens and destroys session
9091
router.get('/logout', async (req, res, next) => {
92+
let idToken = req?.session?.passport?.user?.idToken;
93+
94+
const makeUrl = endpoint => {
95+
return config.get('logoutEndpoint')
96+
+ `?post_logout_redirect_uri=${config.get('server:frontend')}`
97+
+ endpoint
98+
+ (idToken ? `&id_token_hint=${idToken}` : `&client_id=${config.get('oidc:clientId')}`);
99+
};
100+
91101
req.logout(function (err) {
92102
if (err) {
93103
return next(err);
94104
}
95-
req.session.destroy();
96-
const logoutURL = config.get('logoutEndpoint');
97105
let retUrl;
98106
if (req.query && req.query.sessionExpired) {
99-
retUrl =
100-
logoutURL +
101-
'?post_logout_redirect_uri=' +
102-
config.get('server:frontend') +
103-
'/session-expired';
107+
retUrl = makeUrl('/session-expired');
104108
} else if (req.query && req.query.loginError) {
105-
retUrl =
106-
logoutURL +
107-
'?post_logout_redirect_uri=' +
108-
config.get('server:frontend') +
109-
'/login-error';
109+
retUrl = makeUrl('/login-error');
110110
} else if (req.query && req.query.loginBceid) {
111-
retUrl =
112-
logoutURL +
113-
'?post_logout_redirect_uri=' +
114-
config.get('server:frontend') +
115-
'/api/auth/login_bceid';
111+
retUrl = makeUrl('/api/auth/login_bceid');
116112
} else {
117-
retUrl =
118-
logoutURL +
119-
'?post_logout_redirect_uri=' +
120-
config.get('server:frontend') +
121-
'/logout';
113+
retUrl = makeUrl('/logout');
122114
}
115+
req.session.destroy();
123116
log.info('Logout redirection: ', retUrl);
124117
const redirectURL = encodeURIComponent(retUrl);
125118
res.redirect(config.get('siteMinder_logout_endpoint') + redirectURL);

0 commit comments

Comments
 (0)