我有一个用 Django 构建的 Shopify 应用程序,直到最近都运行良好。 session 不会在每个请求中持续存在,因此会引发异常,因为在上一个请求中设置的给定 key 的 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 解决了该问题。
关于python - Django iframe : sessionkey being created every request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52636643/