@@ -48,7 +48,7 @@ function auth(r, afterSyncCheck) {
4848 return ;
4949 }
5050 // Redirect the client to the IdP login page with the cookies we need for state
51- r . return ( 302 , r . variables . oidc_authz_endpoint + getAuthZArgs ( r ) ) ;
51+ r . return ( 302 , r . variables . oidc_authz_endpoint + getQueryParamsAuthZ ( r ) ) ;
5252 return ;
5353 }
5454
@@ -260,18 +260,19 @@ function logout(r) {
260260 r . return ( 302 , r . variables . oidc_logout_redirect ) ;
261261}
262262
263- function getAuthZArgs ( r ) {
263+ function getQueryParamsAuthZ ( r ) {
264264 // Choose a nonce for this flow for the client, and hash it for the IdP
265265 var noncePlain = r . variables . request_id ;
266266 var c = require ( 'crypto' ) ;
267267 var h = c . createHmac ( 'sha256' , r . variables . oidc_hmac_key ) . update ( noncePlain ) ;
268268 var nonceHash = h . digest ( 'base64url' ) ;
269- var authZArgs = "?response_type=code&scope=" + r . variables . oidc_scopes + "&client_id=" + r . variables . oidc_client + "&redirect_uri=" + r . variables . redirect_base + r . variables . redir_location + "&nonce=" + nonceHash ;
269+ var queryParams = "?response_type=code&scope=" + r . variables . oidc_scopes + "&client_id=" + r . variables . oidc_client + "&redirect_uri=" + r . variables . redirect_base + r . variables . redir_location + "&nonce=" + nonceHash ;
270270
271- if ( r . variables . oidc_authz_extra_args ) {
272- authZArgs += "&" + r . variables . oidc_authz_extra_args ;
271+ if ( r . variables . oidc_authz_extra_query_params ) {
272+ queryParams += "&" + r . variables . oidc_authz_extra_query_params ;
273273 }
274274
275+ r . variables . nonce_hash = nonceHash ;
275276 r . headersOut [ 'Set-Cookie' ] = [
276277 "auth_redir=" + r . variables . request_uri + "; " + r . variables . oidc_cookie_flags ,
277278 "auth_nonce=" + noncePlain + "; " + r . variables . oidc_cookie_flags
@@ -282,12 +283,13 @@ function getAuthZArgs(r) {
282283 r . variables . pkce_id = c . createHash ( 'sha256' ) . update ( String ( Math . random ( ) ) ) . digest ( 'base64url' ) ;
283284 var pkce_code_challenge = c . createHash ( 'sha256' ) . update ( pkce_code_verifier ) . digest ( 'base64url' ) ;
284285 r . variables . pkce_code_verifier = pkce_code_verifier ;
286+ r . variables . pkce_code_challenge = pkce_code_challenge ;
285287
286- authZArgs += "&code_challenge_method=S256&code_challenge=" + pkce_code_challenge + "&state=" + r . variables . pkce_id ;
288+ queryParams += "&code_challenge_method=S256&code_challenge=" + pkce_code_challenge + "&state=" + r . variables . pkce_id ;
287289 } else {
288- authZArgs += "&state=0" ;
290+ queryParams += "&state=0" ;
289291 }
290- return authZArgs ;
292+ return queryParams ;
291293}
292294
293295function idpClientAuth ( r ) {
0 commit comments