2

我有一个与画布集成的小型 LTI 应用程序,在 LTI 启动后我无法访问 cookie。这在 Safari(总是)和 Chrome(有时)中失败了。

我正在强制 cookie 的 SameSite=LAX 字段。

我不确定我还应该尝试什么。

4

1 回答 1

2

Chrome(和其他浏览器)在 cookie 和 iframe 方面发生了许多变化。. 对于 LTI 1.3 启动,这更加困难,因为您需要在处理 OIDC 流时跟踪 cookie 中的启动状态。

正在发生变化的基础是现在有一个“SameSite”cookieOnly cookies set as SameSite=None; Secure will be available in third-party contexts, provided they are being accessed from secure connections.政策SecureHTTP-Only除了SameSite=None

同样在 Safari 中,第三方框架必须先请求访问存储 API,然后才能访问 cookie。

Firefox 对存储使用分区方法,因此框架将正常运行,除非您随后将应用程序作为新窗口打开,然后 cookie 存储可能会或可能不会跟随,具体取决于新窗口的创建方式。

Cookie 状态是跟踪第三方 Cookie 在不同浏览器中的工作方式以及您应该进行哪些更改以使其工作的绝佳资源。

于 2021-05-25T12:54:15.683 回答