2024-05-23 22:43:43 发布
网友
我有来自Flask-0.10应用程序的会话cookie的原始值。我需要在另一个不使用Flask的应用程序中读取会话,因此我无法访问session代理。在
session
在Flask-0.9中,我可以执行以下操作:
session = SecureCookieSession.unserialize(cookie, app.secret_key)
然而,这种方法在烧瓶-0.10中已不存在。现在如何读取cookie数据?在
Flask-0.10切换到itsdangerous以序列化会话。关于如何在Flask中读取会话,请参见relevant source code。在
如果您有一个由Flask的默认会话接口序列化的会话,可以按如下方式手动读取它。在
假设您的密钥是'dev',会话数据{'hello': 'world'}被序列化为 'eyJoZWxsbyI6IndvcmxkIn0.BwEv5w.o3gYYutryNy7di1E3LbJZbCFGfY'。在
'dev'
{'hello': 'world'}
'eyJoZWxsbyI6IndvcmxkIn0.BwEv5w.o3gYYutryNy7di1E3LbJZbCFGfY'
from hashlib import sha1 from flask.sessions import session_json_serializer from itsdangerous import URLSafeTimedSerializer s = URLSafeTimedSerializer( 'dev', salt='cookie-session', serializer=session_json_serializer, signer_kwargs={'key_derivation': 'hmac', 'digest_method': sha1} ) session_data = s.loads('eyJoZWxsbyI6IndvcmxkIn0.BwEv5w.o3gYYutryNy7di1E3LbJZbCFGfY') assert session_data['hello'] == 'world' # True
Flask-0.10切换到itsdangerous以序列化会话。关于如何在Flask中读取会话,请参见relevant source code。在
如果您有一个由Flask的默认会话接口序列化的会话,可以按如下方式手动读取它。在
假设您的密钥是
'dev'
,会话数据{'hello': 'world'}
被序列化为'eyJoZWxsbyI6IndvcmxkIn0.BwEv5w.o3gYYutryNy7di1E3LbJZbCFGfY'
。在相关问题 更多 >
编程相关推荐