Add CORS and CSRF configuration to production settings
- Add CORS_ALLOWED_ORIGINS configurable via DJANGO_CORS_ALLOWED_ORIGINS env var - Add CORS_ALLOWED_ORIGIN_REGEXES for wildcard subdomains - Add CSRF_TRUSTED_ORIGINS for production domain - Support custom domains via DJANGO_DOMAIN_NAME env var - Use corsheaders.defaults for standard CORS headers - Add custom headers: x-business-subdomain, x-sandbox-mode
This commit is contained in:
@@ -67,6 +67,42 @@ SECURE_CONTENT_TYPE_NOSNIFF = env.bool(
|
|||||||
default=True,
|
default=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# CORS
|
||||||
|
# -------------------------------------------------------------------------------
|
||||||
|
# django-cors-headers - https://github.com/adamchainz/django-cors-headers#setup
|
||||||
|
# Configure allowed origins via environment variables for production
|
||||||
|
from corsheaders.defaults import default_headers
|
||||||
|
|
||||||
|
# Get CORS allowed origins from environment variable (comma-separated)
|
||||||
|
# Example: DJANGO_CORS_ALLOWED_ORIGINS=https://example.com,https://app.example.com
|
||||||
|
_cors_origins_str = env(
|
||||||
|
"DJANGO_CORS_ALLOWED_ORIGINS",
|
||||||
|
default=f"https://*.{env('DJANGO_DOMAIN_NAME', default='smoothschedule.com')}",
|
||||||
|
)
|
||||||
|
CORS_ALLOWED_ORIGINS = [origin.strip() for origin in _cors_origins_str.split(",") if origin.strip()]
|
||||||
|
|
||||||
|
# Allow regex patterns for dynamic subdomains
|
||||||
|
# Example: https://demo.smoothschedule.com, https://acme.smoothschedule.com, etc.
|
||||||
|
CORS_ALLOWED_ORIGIN_REGEXES = [
|
||||||
|
rf"^https://.*\.{env('DJANGO_DOMAIN_NAME', default='smoothschedule.com')}$",
|
||||||
|
]
|
||||||
|
|
||||||
|
CORS_ALLOW_CREDENTIALS = True
|
||||||
|
CORS_ALLOW_HEADERS = list(default_headers) + [
|
||||||
|
"x-business-subdomain",
|
||||||
|
"x-sandbox-mode",
|
||||||
|
]
|
||||||
|
|
||||||
|
# CSRF
|
||||||
|
# -------------------------------------------------------------------------------
|
||||||
|
CSRF_TRUSTED_ORIGINS = env.list(
|
||||||
|
"DJANGO_CSRF_TRUSTED_ORIGINS",
|
||||||
|
default=[
|
||||||
|
f"https://smoothschedule.com",
|
||||||
|
f"https://*.smoothschedule.com",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# STATIC & MEDIA
|
# STATIC & MEDIA
|
||||||
# ------------------------
|
# ------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user