烧瓶会话无法持续

时间:2020-03-09 17:41:59

标签: google-chrome session flask cookies

好的,伙计们,我已经将头撞墙了3个小时,但仍然找不到解决方案。因此,这是我为Shopify开发的应用程序的场景,它使用iframe展示了我的应用程序。由于某种原因,我现在正在使用Flask会话在我的计算机上保留当前用户名(我不是说本地主机,是我的PC上的浏览器),它在chrome中不起作用,在其他计算机上也可以使用,在其他计算机上也可以使用仅用于演示的浏览器,这里有很多代码

  app.secret_key = "some secret key"
  @blueprint.route("/shopify")
  def shopify_entry():
    session["SHOP_NAME"] = shop_name
    logging.info(f"Session keys {session.keys()}") #!!!! All good it has a value
    return render_template("gen/index.html")

对于客户端,我在index.html加载时使用Vue.js,它会向REST请求商店数据,这是应该返回此数据的一部分

@blueprint.route("/get_shop_settings")
def get_shop_settings():
    logging.info(f"Session keys {session.keys()}") #!!!! Why is this empty
    shop_name = session[SHOP_NAME]#This will throw an exception !!!!
    shop_info = extract_shop_settings_for_ui(get_shop(shop_name))
    logging.info(f"Returning shop data {shop_info}")
    return shop_info

请注意,它确实可以在firefox中工作,并且可以在同一Crome版本的其他计算机上工作,但是在我的PC上,即使我切换到了Incognito,它也已经工作了半年,但是现在却突然停止了工作。最奇怪的是创建了会话cookie

1 个答案:

答案 0 :(得分:0)

在使用iframe chrome时找到了解决方案,仅在将会话SameSite设置为“无”字符串并且受到保护的情况下才存储它的cookie,因此无论遇到同样问题的人,您都需要做两件事,首先设置应用程序配置如下

app = Flask(__name__, template_folder="../templates", static_folder="../static")
app.config.update(SESSION_COOKIE_SAMESITE="None", SESSION_COOKIE_SECURE=True)

第二步,您需要将Werkzeug库更新到1.0.0或更高版本