@@ -44,7 +44,7 @@ export class OidcClient {
4444 // have round tripped, but people were getting confused, so i added state (since that matches the spec)
4545 // and so now if data is not passed, but state is then state will be used
4646 data, state, prompt, display, max_age, ui_locales, id_token_hint, login_hint, acr_values,
47- resource, request, request_uri, extraQueryParams } = { } ,
47+ resource, request, request_uri, response_mode , extraQueryParams } = { } ,
4848 stateStore
4949 ) {
5050 Log . debug ( "OidcClient.createSigninRequest" ) ;
@@ -61,6 +61,7 @@ export class OidcClient {
6161 ui_locales = ui_locales || this . _settings . ui_locales ;
6262 acr_values = acr_values || this . _settings . acr_values ;
6363 resource = resource || this . _settings . resource ;
64+ response_mode = response_mode || this . _settings . response_mode ;
6465 extraQueryParams = extraQueryParams || this . _settings . extraQueryParams ;
6566
6667 let authority = this . _settings . authority ;
@@ -81,7 +82,7 @@ export class OidcClient {
8182 data : data || state ,
8283 authority,
8384 prompt, display, max_age, ui_locales, id_token_hint, login_hint, acr_values,
84- resource, request, request_uri, extraQueryParams,
85+ resource, request, request_uri, extraQueryParams, response_mode
8586 } ) ;
8687
8788 var signinState = signinRequest . state ;
@@ -96,7 +97,12 @@ export class OidcClient {
9697 processSigninResponse ( url , stateStore ) {
9798 Log . debug ( "OidcClient.processSigninResponse" ) ;
9899
99- var response = new SigninResponse ( url ) ;
100+ let delimiter = "#" ;
101+ if ( this . _settings . response_mode === "query" || SigninRequest . isCode ( this . _settings . response_type ) ) {
102+ delimiter = "?" ;
103+ }
104+
105+ var response = new SigninResponse ( url , delimiter ) ;
100106
101107 if ( ! response . state ) {
102108 Log . error ( "OidcClient.processSigninResponse: No state in response" ) ;
0 commit comments