这个问题与我几天前发布的另一个问题有关: Instagram oAuth Authentication postMessage issue only with Mobile Browsers
我遇到的问题是,当我使用Instagram登录我的应用时Chrome会表现不一致(在Android上)并导致一些问题。
正如我在其他帖子中所说,IG身份验证将使用所需的令牌和数据进行回复,以便在我的应用中对用户进行身份验证。
它将通过使用window.opener.postMessage()
回复使用将该数据发送回原始窗口的脚本来执行此操作。
当我以隐身模式在Chrome上运行我的应用时,window.opener.postMessage
将无任何问题,因为只打开了一个标签,并且opener
的引用不会丢失。
然而,当我在同一个浏览器上运行它但在常规模式下(可能有90%的人会这样),行为是不同的。
Chrome会打开一个标签,将其关闭并打开一个新标签以输入身份验证数据。但是,由于window.opener
引用已丢失(现在为opener
),因此null
无法正常工作。
为什么同一台设备上的同一浏览器在两种模式之间会有这种不同的行为? 有谁知道为什么会发生这种情况以及如何防止这种情况发生?