Allow session cookies to be stored with a lax policy for some localhost scenarios

This commit is contained in:
sabaimran
2024-04-29 15:48:45 +05:30
parent 5beedc9734
commit 0f4c3518d3

View File

@@ -40,6 +40,8 @@ CSRF_TRUSTED_ORIGINS = [
f"https://app.{KHOJ_DOMAIN}", f"https://app.{KHOJ_DOMAIN}",
] ]
DISABLE_HTTPS = is_env_var_true("KHOJ_NO_HTTPS")
COOKIE_SAMESITE = "None" COOKIE_SAMESITE = "None"
if DEBUG or os.getenv("KHOJ_DOMAIN") == None: if DEBUG or os.getenv("KHOJ_DOMAIN") == None:
SESSION_COOKIE_DOMAIN = "localhost" SESSION_COOKIE_DOMAIN = "localhost"
@@ -48,11 +50,19 @@ else:
# Production Settings # Production Settings
SESSION_COOKIE_DOMAIN = KHOJ_DOMAIN SESSION_COOKIE_DOMAIN = KHOJ_DOMAIN
CSRF_COOKIE_DOMAIN = KHOJ_DOMAIN CSRF_COOKIE_DOMAIN = KHOJ_DOMAIN
if not is_env_var_true("KHOJ_NO_HTTPS"): if not DISABLE_HTTPS:
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https") SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
SESSION_COOKIE_SECURE = not is_env_var_true("KHOJ_NO_HTTPS") if DISABLE_HTTPS:
CSRF_COOKIE_SECURE = not is_env_var_true("KHOJ_NO_HTTPS") SESSION_COOKIE_SECURE = False
CSRF_COOKIE_SECURE = False
# These need to be set to Lax in order to work with http in some browsers. See reference: https://docs.djangoproject.com/en/5.0/ref/settings/#std-setting-SESSION_COOKIE_SECURE
COOKIE_SAMESITE = "Lax"
SESSION_COOKIE_SAMESITE = "Lax"
else:
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
COOKIE_SAMESITE = "None" COOKIE_SAMESITE = "None"
SESSION_COOKIE_SAMESITE = "None" SESSION_COOKIE_SAMESITE = "None"