【发布时间】:2021-08-13 17:16:33
【问题描述】:
我有一个与画布集成的小型 LTI 应用程序,在 LTI 启动后我无法访问 cookie。这在 Safari(总是)和 Chrome(有时)中会失败。
我正在强制 cookie 的 SameSite=LAX 字段。
我不确定我还应该尝试什么。
【问题讨论】:
标签: cookies iframe lti canvas-lms
我有一个与画布集成的小型 LTI 应用程序,在 LTI 启动后我无法访问 cookie。这在 Safari(总是)和 Chrome(有时)中会失败。
我正在强制 cookie 的 SameSite=LAX 字段。
我不确定我还应该尝试什么。
【问题讨论】:
标签: cookies iframe lti canvas-lms
Chrome(和其他浏览器)regarding cookies and iframe. 发生了许多变化。对于 LTI 1.3 启动,这更加困难,因为您需要在处理 OIDC 流时跟踪 cookie 中的启动状态。
改变的基础是现在有一个“SameSite”cookie 策略,其中Only cookies set as SameSite=None; Secure will be available in third-party contexts, provided they are being accessed from secure connections. 因此,除了SameSite=None 之外,还必须将 cookie 标记为 Secure 和 HTTP-Only
同样在 Safari 中,第三方框架必须先请求访问 storage API,然后才能访问 cookie。
Firefox 使用分区存储方法,因此框架将正常运行,除非您随后将应用程序作为新窗口打开,然后 cookie 存储可能会或可能不会跟随,具体取决于新窗口的创建方式。
Cookie Status 是跟踪第三方 cookie 在不同浏览器中的工作方式以及您应该进行哪些更改以使其正常工作的绝佳资源。
【讨论】: