Skip to main content
 首页 » 编程设计

python之Django iframe : sessionkey being created every request

2024年08月15日31itcoder

我有一个用 Django 构建的 shopify 应用程序,直到最近它都运行良好。 session 不会在每个请求中持续存在,因此会引发异常,因为在上一个请求中设置的给定键的 session 不存在。 在 Shopify 之外尝试应用程序端点工作正常, session 在请求之间完美持续,因此这肯定是 Shopify 内部的问题。

查看我们数据库中的 session 表,我们看到多个具有相同数据的 session key ,这表明每个请求正在创建另一个 session 。我们如何在 iframe 中跨请求保持 session ?

请您参考如下方法:

使用的 Django 版本是 2.1,现在包含一个有助于防止 CSRF 攻击的新功能。根据docs新的 SESSION_COOKIE_SAMESITE 默认值为“Lax”,这是“Strict”和 None 之间的中间地带。

此功能显然适用于独立的 Django 应用程序,但会导致它们在类似于 Shopify 的 iframe 中中断。在 settings.py 中设置 SESSION_COOKIE_SAMESITE = None 解决了这个问题。