Flask的默认session利用了Werkzeug的SecureCookie,把信息做序列化(pickle)后编码(base64),放到cookie里了。
过期时间是通过cookie的过期时间实现的。
为了防止cookie内容被篡改,session会自动打上一个叫session的hash串,这个串是经过session内容、SECRET_KEY计算出来的,看得出,这种设计虽然不能保证session里的内容不泄露,但至少防止了不被篡改。
另外,过期时间是这样来设置:
-
from datetime import timedelta
-
-
session.permanent = True
-
app.permanent_session_lifetime = timedelta(minutes=5)
-
session['key'] = value
详情参见源码:
$PYTHONPATH/site-packages/flask/sessions.py
官方的Snippets给出了一则更好的客户端Session:
http://flask.pocoo.org/snippets/51/