GetWeixinCode icon indicating copy to clipboard operation
GetWeixinCode copied to clipboard

如何解决「取消授权」留在中间页,而不是关闭页面?

Open youthcity opened this issue 7 years ago • 5 comments
trafficstars

在中间页跳到微信的授权页,进行授权时,当用户点击「取消授权」,页面没有自动关闭,而是留在中间页。

如果不使用中间页进行跳转,直接访问微信的授权页,点击「取消授权」可以自动关闭页面。

重现步骤:

  • 访问使用带有回调地址的中间页
  • 中间页自动跳到微信中间页
  • 点击 「取消」授权
  • 页面没有自动关闭,留在中间页。

尝试解决的方法:

本以为是页面已经跳转,但是路由栏没有变成微信的地址。猜想,如果不是微信的地址就不会关闭。 所以将location.href = redirectUri;,改成了location.href = redirectUri + "&t=" + (new Date().getTime());。 强制不让微信内置浏览器不进行缓存。实际效果,还是不可以。

请问有办法,在中间页监听微信的取消事件么?如果能监听到的话,就可以点击取消的时候,关闭窗口。

youthcity avatar Apr 17 '18 02:04 youthcity

好问题,取消授权的操作是在微信的授权页面进行的,它应该会返回到授权页面的前一个页面,也就是我们的中间页。直接监听取消事件应该是比较难,需要在中间页上做一些处理。这个我有空尝试一下。

HADB avatar Apr 17 '18 16:04 HADB

嗯嗯。我也找找有没有其他方式进行解决。

youthcity avatar Apr 19 '18 10:04 youthcity

@youthcity 老哥目前有解决办法了么

huangming1994 avatar Feb 17 '19 15:02 huangming1994

我觉得自动设置倒计时10s时间,如果不授权的话,跳转回原来的url。 一般10s用户不授权,估计也不会授权了。授权的话跳到redirect_uri, 也用不到倒计时了。 @youthcity

withgogo avatar Sep 19 '19 14:09 withgogo

页面会有load事件,记录时间戳,存在时间戳即为取消授权,返回原url即可@youthcity

YafXe avatar Jan 18 '22 02:01 YafXe