Skip to content

Commit 7855784

Browse files
committed
Added support for extraQueryParams in the SignoutRequest
1 parent 01c872a commit 7855784

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

src/OidcClient.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,12 +123,13 @@ export class OidcClient {
123123
});
124124
}
125125

126-
createSignoutRequest({id_token_hint, data, state, post_logout_redirect_uri} = {},
126+
createSignoutRequest({id_token_hint, data, state, post_logout_redirect_uri, extraQueryParams } = {},
127127
stateStore
128128
) {
129129
Log.debug("OidcClient.createSignoutRequest");
130130

131131
post_logout_redirect_uri = post_logout_redirect_uri || this._settings.post_logout_redirect_uri;
132+
extraQueryParams = extraQueryParams || this._settings.extraQueryParams;
132133

133134
return this._metadataService.getEndSessionEndpoint().then(url => {
134135
if (!url) {
@@ -142,7 +143,8 @@ export class OidcClient {
142143
url,
143144
id_token_hint,
144145
post_logout_redirect_uri,
145-
data: data || state
146+
data: data || state,
147+
extraQueryParams
146148
});
147149

148150
var signoutState = request.state;

src/SignoutRequest.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { UrlUtility } from './UrlUtility';
66
import { State } from './State';
77

88
export class SignoutRequest {
9-
constructor({url, id_token_hint, post_logout_redirect_uri, data}) {
9+
constructor({url, id_token_hint, post_logout_redirect_uri, data, extraQueryParams}) {
1010
if (!url) {
1111
Log.error("SignoutRequest.ctor: No url passed");
1212
throw new Error("url");
@@ -26,6 +26,10 @@ export class SignoutRequest {
2626
}
2727
}
2828

29+
for(let key in extraQueryParams){
30+
url = UrlUtility.addQueryParam(url, key, extraQueryParams[key])
31+
}
32+
2933
this.url = url;
3034
}
3135
}

test/unit/SignoutRequest.spec.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,15 @@ describe("SignoutRequest", function() {
8080
url.should.contain("state=" + subject.state.id);
8181
});
8282

83+
it("should include extra query params", function() {
84+
settings.extraQueryParams = {
85+
'TargetResource': 'logouturl.com',
86+
'InErrorResource': 'errorurl.com'
87+
};
88+
subject = new SignoutRequest(settings);
89+
subject.url.should.contain('TargetResource=logouturl.com&InErrorResource=errorurl.com');
90+
});
91+
8392
});
8493

8594
});

0 commit comments

Comments
 (0)