File tree Expand file tree Collapse file tree 3 files changed +29
-1
lines changed Expand file tree Collapse file tree 3 files changed +29
-1
lines changed Original file line number Diff line number Diff line change @@ -188,7 +188,7 @@ function codeExchange(r) {
188188 r . log ( "OIDC success, creating session " + r . variables . request_id ) ;
189189 r . variables . new_session = tokenset . id_token ; // Create key-value store entry
190190 r . headersOut [ "Set-Cookie" ] = "auth_token=" + r . variables . request_id + "; " + r . variables . oidc_cookie_flags ;
191- r . return ( 302 , r . variables . redirect_base + r . variables . cookie_auth_redir ) ;
191+ redirectPostLogin ( r ) ;
192192 }
193193 ) ;
194194 } catch ( e ) {
@@ -253,6 +253,15 @@ function validateIdToken(r) {
253253 }
254254}
255255
256+ // Redirect URI after successful login from the OP.
257+ function redirectPostLogin ( r ) {
258+ if ( r . variables . oidc_landing_page ) {
259+ r . return ( 302 , r . variables . oidc_landing_page ) ;
260+ } else {
261+ r . return ( 302 , r . variables . redirect_base + r . variables . cookie_auth_redir ) ;
262+ }
263+ }
264+
256265function logout ( r ) {
257266 r . log ( "OIDC logout for " + r . variables . cookie_auth_token ) ;
258267 r . variables . session_jwt = "-" ;
Original file line number Diff line number Diff line change 6666 error_page 500 502 504 @oidc_error;
6767 }
6868
69+ location = /login {
70+ # This location can be called by SPA for scenarios where `/` location is
71+ # proxied to SPA landing page that doesn't need to be started with user
72+ # authentication, and a user clicks on login button to start OIDC flow.
73+ status_zone "OIDC login" ;
74+ auth_jwt "" token=$session_jwt ;
75+ error_page 401 = @do_oidc_flow;
76+
77+ auth_jwt_key_file $oidc_jwt_keyfile ; # Enable when using filename
78+ #auth_jwt_key_request /_jwks_uri; # Enable when using URL
79+ }
80+
6981 location = /logout {
7082 status_zone "OIDC logout" ;
7183 add_header Set-Cookie "auth_token=; $oidc_cookie_flags" ; # Send empty cookie
Original file line number Diff line number Diff line change @@ -44,6 +44,13 @@ map $host $oidc_scopes {
4444 default "openid+profile+email+offline_access" ;
4545}
4646
47+ map $host $oidc_landing_page {
48+ # Where to send browser after successful login. If empty, redirects User
49+ # Agent to $request_uri.
50+ default "" ;
51+ #www.example.com $redirect_base;
52+ }
53+
4754map $host $oidc_logout_redirect {
4855 # Where to send browser after requesting /logout location. This can be
4956 # replaced with a custom logout page, or complete URL.
You can’t perform that action at this time.
0 commit comments