Session Management¶
We are using Flask-Session to store user sessions server-side.
We are using this with the RedisSessionInterface
. Locally using Digital Marketplace Runner (‘dmrunner’) this uses a Redis Docker image and on PaaS we use the Redis backing service.
Accessing redis sessions¶
Warning
There should be no day-to-day need to edit the Redis store and you risk breaking users’ sessions by doing so. Speak with other members of the team before accessing it.
You can use redis-cli
to inspect and edit the Redis store:
localhost/dmrunner¶
docker exec -it $(docker ps -aqf "name=redis") redis-cli
PaaS¶
brew install redis
cf conduit digitalmarketplace_redis -- redis-cli
Getting a session value¶
From the dm_session
cookie copy the first part of the value prior to the period character which should be a UUID.
From redis-cli
run:
GET session:UUID
To show all keys run:
KEYS *
Decoding sessions¶
If you have got a session value from Redis it can be decoded using the Pickle library:
import pickle
value = \b'VALUE'
pickle.loads(value)