mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-10-31 02:10:05 +00:00 
			
		
		
		
	- sys-front-inj-logout: depend on web-svc-logout (run-once guarded) and simplify task flow. - web-svc-logout: align feature flags/formatting and extend CSP: - add cdn.jsdelivr.net to connect/script/style and quote values. - Nginx: move CORS config into logout-proxy.conf.j2 with dynamic vars: - Access-Control-Allow-Origin set to canonical logout origin, - Allow-Credentials=true, - Allow-Methods=GET, OPTIONS, - basic headers list (Accept, Authorization), - cache disabled for /logout responses. - Drop obsolete CORS var passing from 01_core.yml; headers now templated at proxy layer. Prepares clean cross-origin logout orchestration from https://logout.veen.world. Refs: ChatGPT discussion – https://chatgpt.com/share/68ebb75f-0170-800f-93c5-e5cb438b8ed4
		
			
				
	
	
		
			26 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
| location = /logout {
 | ||
|     {# Proxy to the logout service #}
 | ||
|     proxy_pass         http://127.0.0.1:{{ ports.localhost.http['web-svc-logout'] }}/logout;
 | ||
|     proxy_set_header   Host              $host;
 | ||
|     proxy_set_header   X-Real-IP         $remote_addr;
 | ||
|     proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
 | ||
|     proxy_set_header   X-Forwarded-Proto $scheme;
 | ||
|     proxy_http_version 1.1;
 | ||
| 
 | ||
|     {# CORS headers – allow your central page to call this #}
 | ||
|     {%- set aca_origin = "'{{ domains | get_url('web-svc-logout', WEB_PROTOCOL) }}' always" -%}
 | ||
|     {%- set aca_credentials = "'true' always" -%}
 | ||
|     {%- set aca_methods = "'GET, OPTIONS' always" -%}
 | ||
|     {%- set aca_headers = "'Accept, Authorization' always" -%}
 | ||
|     {%- include 'roles/sys-svc-proxy/templates/headers/access_control_allow.conf.j2' -%}
 | ||
| 
 | ||
|     {# Disable caching absolutely #}
 | ||
|     add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0" always;
 | ||
|     add_header Pragma "no-cache" always;
 | ||
|     add_header Expires "0" always;
 | ||
| 
 | ||
|     {# Handle preflight #}
 | ||
|     if ($request_method = OPTIONS) {
 | ||
|       return 204;
 | ||
|     }
 | ||
| } |