def __call__(self, environ, start_response): # just make sure it exists and throw it in the environ session = Session(environ) if session.session_key is None: session.create() environ[self.settings.SESSION_WSGI_ENVIRON_NAME] = session def session_start_response(status, headers, exc_info=None): session = Session(environ) if session.modified: if session.get_expire_at_browser_close(): max_age = None expires = None else: max_age = session.get_expiry_age() expires_time = time.time() + max_age expires = cookie_date(expires_time) cookie = me_want_cookie('sessionid', value=session.session_key, max_age=max_age, expires=expires, path=self.settings.SESSION_COOKIE_PATH, domain=self.settings.SESSION_COOKIE_DOMAIN, secure=self.settings.SESSION_COOKIE_SECURE, httponly=self.settings.SESSION_COOKIE_HTTPONLY) headers.append(("Set-Cookie", cookie.output(header=''))) return start_response(status, headers, exc_info) return self.app(environ, session_start_response)
def session_start_response(status, headers, exc_info=None): session = Session(environ) if session.modified: if session.get_expire_at_browser_close(): max_age = None expires = None else: max_age = session.get_expiry_age() expires_time = time.time() + max_age expires = cookie_date(expires_time) cookie = me_want_cookie('sessionid', value=session.session_key, max_age=max_age, expires=expires, path=self.settings.SESSION_COOKIE_PATH, domain=self.settings.SESSION_COOKIE_DOMAIN, secure=self.settings.SESSION_COOKIE_SECURE, httponly=self.settings.SESSION_COOKIE_HTTPONLY) headers.append(("Set-Cookie", cookie.output(header=''))) return start_response(status, headers, exc_info)