收藏
回答

Chrome 68 微信扫码登录问题

如题,在以页面嵌入的方式接入微信扫码登录,重定向操作被Chrome浏览器默认阻止

Chrome 68 默认开启安全策略,禁止iframe中非用户触发的重定向操作 top.location.href 所以只能使用新页面打开 微信域,授权后再跳转回接入网站的形式。或者用户在浏览器选择信任网站操作的形式,对小白用户来说,不一定会操作。 官方有没有其他的实现方式,解决页面嵌入接入形式的跳转问题???

回答关注问题邀请回答
收藏

1 个回答

  • narol
    narol
    2018-08-22

    顶起来,期望微信的同学能尽快解决这个问题!

    2018-08-22
    有用
    回复 4
    • narol
      narol
      2018-08-24

      初步找到一种方案,可以尝试设置 self_redirect 为true(详见文档),这样授权登录页就不会用top.location重定向了,而是重定向当前iframe。然后在重定向后的页面(中转页)调用 top.location.callParentPageMethod ,不过需要在该页面以及父级页面设置document.domain为同域,比如document.domain = 'foo.com',而父级的方法 callParentPageMethod 则可以执行window.location.reload()或者其他登录完成的逻辑。

      2018-08-24
      回复
    • narol
      narol
      2018-08-28回复narol

      在中转页用postMessage通知父级页面,应该会更优雅些

      2018-08-28
      回复
    • 乐恒
      乐恒
      2021-07-28回复narol
      PC里二维码url 直接加一个&self_redirect=true??
      2021-07-28
      回复
    • 2021-08-23
      如果self-redirect = true的话chrom会进行拦截
      2021-08-23
      回复
登录 后发表内容