Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hitme/82f547e704bbd552fdbba35757f7423d to your computer and use it in GitHub Desktop.
Save hitme/82f547e704bbd552fdbba35757f7423d to your computer and use it in GitHub Desktop.
Django session cookie migration
# Read more at http://www.pindi.us/blog/migrating-cross-domain-cookies-django
from django.conf import settings
from importlib import import_module
class UpdateSessionCookieMiddleware(object):
"""
Migrates session data from an old (hardcoded) session cookie name and domain to the name and
domain currently defined in the Django settings.
Should be placed after SessionMiddleware but before any middleware that uses request.session.
"""
def process_request(self, request):
session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME, None)
if session_key is None:
old_session_key = request.COOKIES.get('sessionid', None)
if old_session_key:
engine = import_module(settings.SESSION_ENGINE)
old_session = engine.SessionStore(old_session_key)
for key, value in old_session.items():
request.session[key] = value
request.session.save()
def process_response(self, response):
response.delete_cookie('sessionid', domain='www.getstudyroom.com')
@orrion
Copy link

orrion commented Jul 30, 2020

process_response method must return the response.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment