我使用的是Flask默认值,因此为会话cookie设置了HttpOnly。
我有一个处理程序,我想允许它的JavaScript访问会话cookie。
是否有一种方法可以更改单个处理程序的Flask会话cookie,以使HttpOnly为false?
我在处理程序中尝试过:
app.config['SESSION_COOKIE_HTTPONLY'] = False
rsp = make_response(jsonify(...))
app.config['SESSION_COOKIE_HTTPONLY'] = True
return rsp
,但cookie仍设置为HTTPONLY。好像Flask在做出响应后添加了会话cookie。
答案 0 :(得分:0)
我使用this answer中的信息找到了解决方案。
您可以创建会话cookie数据,如下所示:
from flask.sessions import SecureCookieSessionInterface
session_serializer = SecureCookieSessionInterface().get_signing_serializer(app)
session_clone = dict(foo='bar')
session_cookie_data = session_serializer.dumps(session_clone)
,然后您可以使用会话名称创建自己的cookie:
resp = make_response()
resp.set_cookie('session', session_cookie_data)
return resp