Cookies 在构建Outlook插件(第三方cookie)时,我应该如何处理在iframe中读取cookie的问题

Cookies 在构建Outlook插件(第三方cookie)时,我应该如何处理在iframe中读取cookie的问题,cookies,outlook,office-js,office-addins,Cookies,Outlook,Office Js,Office Addins,我目前正在为我们提供的一项服务开发outlook加载项,但在通过应用商店提交时遇到问题。我的问题是,尽管该加载项在Outlook中运行良好,但如果您尝试从Office 365上的Safari加载它,cookie的读取将被阻止 我们使用Office.js SDK管理exchange集成,并提供用户登录的对话框。这将创建一个cookie,其中包含一个令牌,然后我们在JS中读取该令牌并将其与任何API请求一起发送。在启用阻止第三方Cookie的情况下(或在使用Safari时),iframe似乎无法访问

我目前正在为我们提供的一项服务开发outlook加载项,但在通过应用商店提交时遇到问题。我的问题是,尽管该加载项在Outlook中运行良好,但如果您尝试从Office 365上的Safari加载它,cookie的读取将被阻止

我们使用Office.js SDK管理exchange集成,并提供用户登录的对话框。这将创建一个cookie,其中包含一个令牌,然后我们在JS中读取该令牌并将其与任何API请求一起发送。在启用阻止第三方Cookie的情况下(或在使用Safari时),iframe似乎无法访问来自同一来源的Cookie。启用第三方Cookie(或不使用Safari时),一切正常

我们面临的问题是,微软不会批准该插件,除非它能在最新版本的Safari上运行


提前感谢。

我们怀疑这可能与Webkit本身的回归有关,这会导致第三方cookie被阻止,即使用户已与主页交互

这一变化导致了回归:

此更改修复了它:


如果是这种情况,那么我们必须等到修复程序发货。但是,只有在用户访问了窗口中的主页之后,才能访问第三方cookie(如果您在“显示”对话框中设置cookie,则最好是这样)。(阅读更多内容)作为解决此问题的一种方法,您可以使用localStorage在浏览器中存储临时信息,该信息不受此回归的影响,也可以使用服务器端cookie。

您能否澄清创建cookie的代码?它是Office.js API、您的代码还是身份验证库?谢谢。您好,我们在通过office.js库创建的对话框中创建cookie:office.context.ui.displayDialogAsync()我可以验证cookie是否存在,是否属于iframe的来源,但是当我尝试在加载项托管在iframe中时读取cookie时,我什么也没有得到。cookie的实际创建是使用一个简单的js cookie库进行的。set(“loginToken”,token.access_token,{expires:7});嗨,谢谢你的回复。你能澄清一下吗。调试控制台中是否有相同的错误消息?如果是,你能分享一下吗?看起来没有任何错误。cookie是空的。您希望浏览器能够访问iFrame中的cookie吗?除此之外,能否告诉我们您提交进行验证的加载项的名称?您好。当然可以这是ER跟踪插件。