好的,伙计们,我已经将头撞墙了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
答案 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或更高版本