flask中的session解密和更改默认保存方式

注意:secret_key存在的意义是防止用户篡改session的(和jwt的秘钥类似)

flask的session是通过secret_key加密之后存储到cookie里面的,键为session,值为session的加密值

该cookie通过字符串的分割之后,分成了三部分:内容序列化+时间+防篡改值

参考:https://blog.csdn.net/yueguanghaidao/article/details/40016235

from itsdangerous import *

# 从浏览器中复制过来的cookie值
session_str = 'eyJhZ2UiOjEyMywibmFtZSI6Im9sYWYifQ.YFC3Aw.Up60dP3IAkTEloNX1CWlA91fpc4'

data, timestamp, secret = session_str.split('.')

print(base64_decode(data))

 flask中session的默认存储位置是在客户端cookie里面,我们可以通过flask_session去更改其存储位置(存储到服务端)

可以存储到 本地文件、redis、memcached,MySQL中等等,具体可参考flask_session文档

注意:在flask_session中指定将session存储到filesystem时,有个坑,请将 SESSION_FILE_THRESHOLD 值设置大一些,或者换种方式存储

默认SESSION_FILE_THRESHOLD = 500,如果值过小,可能会导致登录状态异常清除。

 

posted @ 2021-03-16 22:30  SJL0327  阅读(826)  评论(0编辑  收藏  举报