Cache user session
This commit is contained in:
@@ -23,15 +23,19 @@ def get_session(request):
|
||||
global secret_key
|
||||
if not secret_key:
|
||||
raise ValueError('The session secret key is not configured')
|
||||
if hasattr(request.g, '_session'):
|
||||
return request.g._session
|
||||
session = request.cookies.get('session')
|
||||
if session is None:
|
||||
return {}
|
||||
request.g._session = {}
|
||||
return request.g._session
|
||||
try:
|
||||
session = jwt.decode(session, secret_key, algorithms=['HS256'])
|
||||
except jwt.exceptions.PyJWTError: # pragma: no cover
|
||||
raise
|
||||
return {}
|
||||
return session
|
||||
request.g._session = {}
|
||||
else:
|
||||
request.g._session = session
|
||||
return request.g._session
|
||||
|
||||
|
||||
def update_session(request, session):
|
||||
|
||||
@@ -19,6 +19,9 @@ class TestSession(unittest.TestCase):
|
||||
@self.app.get('/')
|
||||
def index(req):
|
||||
session = get_session(req)
|
||||
session2 = get_session(req)
|
||||
session2['foo'] = 'bar'
|
||||
self.assertEqual(session['foo'], 'bar')
|
||||
return str(session.get('name'))
|
||||
|
||||
@self.app.get('/with')
|
||||
|
||||
Reference in New Issue
Block a user