1

我们有一个反应应用程序,我们正在对 AAD 使用 msal 身份验证。用户第一次登录应用程序并调用acquireTokenSilent获取令牌时,我们会收到此警告

在此处输入图像描述

我们试图打电话: document.cookie = "cross-site-cookie=bar, SameSite=None, Secure";

但我们继续收到此警告。

当应用程序部署在 azure 服务中时,情况会更糟。 acquireTokenSilent返回一个ClientAuthError Token renewal operation failed due to time out。如果用户刷新页面,则它会获取令牌并且警告消失。

我们如何才能删除此警告?我们得到的是否ClientAuthError与此警告有关(仅在我们收到此警告后才会发生)?

4

2 回答 2

1

您需要找到最初设置此 cookie 的位置并提供适当的SameSite属性。请记住 -SameSite=None; Secure仅当您确实希望在跨站点/第三方上下文中发送此 cookie 时才需要。如果 cookie 仅用于您自己的网站,请考虑使用SameSite=Lax或什至SameSite=Strict.

更新的评论者正确地指出错误中列出的域显然microsoftonline.com不是提交者的站点。我的建议只有在提交者谈论他们自己网站的 cookie 时才适用。

于 2020-02-06T09:01:40.327 回答
1

Login.microsoftonline.com 和 login.live.com 已于 2019 年底更新,以在跨域请求所需的 cookie 上正确设置 SameSite=None 标志。但是,我们还有许多其他不需要跨域的 cookie,这些 cookie 未标记以减少我们对实时系统进行的更改量。这可能会导致 Chrome 控制台中出现一些警告,对于 login.microsoftonline.com 和 login.live.com 域,您可以放心地忽略这些警告。

于 2020-02-06T18:23:29.903 回答