当前位置: 代码迷 >> python >> 生成Flask中使用的已签名会话cookie值
  详细解决方案

生成Flask中使用的已签名会话cookie值

热度:76   发布时间:2023-06-16 10:25:58.0

我正在使用另一个需要将项目注入会话的Flask服务器代理Flask服务器。

两个服务器都具有相同的密钥,因此加密签名将是相同的。 使用Flask和会话时,http响应包含带有session=text的Set-Cookie标头,其中text是使用您的密钥签名的会话对象的编码JSON字符串。

本质上,我需要能够重新创建这个字符串,但我找不到这样做的接口。

在找到了在源后,我最终解决了自己的问题。 我急着上班,所以没有时间更好地解释。

from flask import Flask, session
from flask.sessions import SecureCookieSessionInterface

app = Flask("example")
app.secret_key = "Tom Izzo 4 President"

# 1. this is what I was looking for
session_serializer = SecureCookieSessionInterface() \
                         .get_signing_serializer(app)

app.route("/")
def test():
    session["lst"] = ["a", "b", "c", "d"]

    # 2. and this is how I needed to use it
    session_cookie = session_serializer.dumps(dict(session))

上面的变量session_cookie是使用给定secret_key的会话的有效cookie值。 有了这个,我能够将请求转发到使用secret_key的另一个烧瓶服务器。

  相关解决方案