收藏
回答

微信公众号网页授权时,回调两次?

问题模块
API和组件

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxae99846d698d58b7&redirect_uri=http%3a%2f%2ftszywx.qijiuyi.cn%2fqujiuyi_lottery%2fclient%2ftest1&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect


像这种网页,我获取code时,会收到两个请求:

code虽然都是一样的,但是ip一个是成都的ip,另一个是上海的ip,有时候是天津的ip,sessionId也不一样。


比如

101.226.233.145 + 123.151.76.158

101.226.233.154 + 123.151.76.158

101.226.233.151 + 123.151.76.158

101.226.233.156 + 123.151.76.158

……



最后一次编辑于  2017-11-20  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

18 个回答

  • 脸不够圆
    脸不够圆
    2018-04-04

    2018/4/4 更新该问题:

    发现了其中一个原因:由于微信X5浏览器自带一个超时重发的功能(超过10秒重新发送请求),所以如果你处理code的时间过长,就会出现多次code的情况。你们自己检查一下吧。


    2018-04-04
    赞同 1
    回复
  • 小菜鸡
    小菜鸡
    2017-11-24

    你好, 请问这个问题解决了么

    2017-11-24
    赞同
    回复
  • 孔祥帅
    孔祥帅
    2017-12-03

    我也碰到这个问题,我用nginx 做了一次代理,然后用apache 做了一次代理,都是两次请求,但是如果不做代理,就没有这个问题?非常无语?不知道老兄现在解决了吗?如果解决能否告诉一下解决方案,非常感谢,我的qq 576026608,帮人解决bug,胜造九级浮屠呀

    2017-12-03
    赞同
    回复
  • 孔祥帅
    孔祥帅
    2017-12-03

    这个问题的解决思路是在页面通过ajax请求,因为ajax请求是请求一次,而location.href请求两次。即通过ajax请求,获取code url,然后通过location.href 进行调整,这时候跳转还是出现二次请求,然后我添加了一个分布式锁,用获取的code做key值。

    2017-12-03
    赞同
    回复
  • 逝水流LF
    逝水流LF
    2017-12-06

    @脸不够圆,我们也是nginx配置,发送二次请求,如何解决的

    2017-12-06
    赞同
    回复
  • 华仔💋
    华仔💋
    2017-12-07

    我也遇到这个问题,不仅仅是网页授权回调,在微信里面点击菜单或点击聊天消息中的URL都会发出两次请求?请问如何解决?

    服务器也是使用Nginx了反向代理。

    2017-12-07
    赞同
    回复
  • 华仔💋
    华仔💋
    2017-12-07

    补充:在PC端浏览器访问是正常的,就是在微信里面有问题。

    2017-12-07
    赞同
    回复
  • Asan
    Asan
    2018-02-05

    请求加&connect_redirect=1

    2018-02-05
    赞同
    回复
  • easy
    easy
    2018-03-02

    9楼的有效果,可以一试

    2018-03-02
    赞同
    回复
  • 改变自己
    改变自己
    2018-03-11

    @9楼 在那个地方加&connect_redirect=1 这个东西  我试了https://open.weixin.qq.com/connect/oauth2/authorize?appid={$appid}&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_base&state={$state}#wechat_redirect&connect_redirect=1  不行呀

    2018-03-11
    赞同
    回复