From 8646bd70dc0bc08aa3fb1f09c155cf6e5f11c0ae Mon Sep 17 00:00:00 2001 From: Markos Gogoulos Date: Thu, 29 Jan 2026 12:49:45 +0200 Subject: [PATCH] wtv --- lti/adapters.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/lti/adapters.py b/lti/adapters.py index dc576dba..40fe5bd1 100644 --- a/lti/adapters.py +++ b/lti/adapters.py @@ -118,22 +118,17 @@ class DjangoSessionService: def save_launch_data(self, key, data): """Save launch data to session and cache (for state keys)""" - # For state keys, save to both session and cache + # Always save to session first + session_key = self._session_key_prefix + key + self.request.session[session_key] = json.dumps(data) + self.request.session.modified = True + + # For state keys, ALSO save to cache as backup (for cross-site cookie issues) if key.startswith('state-'): cache_key = self._cache_prefix + key # Store in cache for 10 minutes (longer than typical LTI flow) cache.set(cache_key, json.dumps(data), timeout=600) - # Also save to session - session_key = self._session_key_prefix + key - self.request.session[session_key] = json.dumps(data) - self.request.session.modified = True - # Force immediate session save for concurrent requests - try: - self.request.session.save() - except Exception: - # If session save fails, we still have cache - pass return True def check_launch_data_storage_exists(self, key):