在做微信的h5认证授权时,发现h5获取到code提交到后端后,h5这边会连续刷新2次。第一次的被中断,第二次的响应异常。因2次提交的code都一样,而微信的code 只能使用一次,故第二次的异常是正常情况。问题出在第一次,为什么会中断。

刷新2次的问题,从网上找了很多帖子,有在客户端的cookie做cache,通过记录次数来规避这个问题;有后端做cache,通过识别提交的code相同来规避这个问题的;也有加一个connect_redirect参数来解决问题的。但这些对我的场景都无效。而且后端做了规避后,会导致前端死循环请求。

具体问题的原因定位流程如下:

1.前端请求任意其它接口,是否会发生连续2次刷新。结果:不会;

2.前端请求的鉴权接口,其中请求了微信的code认证与用户信息获取的接口,是否和这些接口的请求上下文有关。结果:无关;

3.前端请求鉴权接口,拿到用户信息后,还构造了一个业务对象,是否和构造过程有关。结果:无关;

4.前端请求鉴权接口,接口响应是否正常。结果:正常;

5.微信客户端或者开发者工具是一个半封闭环境,对运行在其上的业务是有一定的要求的。最起码自我保护肯定是要做的。那是不是加载的数据过多,导致触发其安全策略导致请求被中断。尝试将接口响应内容压缩2/3,发现不再连续刷新2次,此时,定位到具体问题。

转载于:https://www.cnblogs.com/asfeixue/p/10226312.html

微信网页授权问题记录相关推荐

  1. 【记录】微信网页授权错误码10003:redirect_uri域名与后台配置不一致

    场景:微信公众平台-微信网页授权 1 第一步:用户同意授权,获取code 将服务上传到服务器(该服务器有域名) 域名为例如我的服务器为 https://damionew.top 代码如下: packa ...

  2. android user-agent iso-8859-1,微信网页授权,错误40163,ios正确,安卓错误?

    2018-07-18:一年时间过去了,我又回来填自己挖的坑了!! 2017年7月,我遇到了这个问题,当时在这里提了问,后来又跟踪了两天,也没彻底搞懂,反正时好时坏,,后来自己主要精力放在H5+开发上, ...

  3. 微信公众号开发(一) 微信网页授权登录

    微信网页授权登录 前期准备 授权登录 获取微信数据 处理授权拒绝 前期准备 1.微信公众号开发,首先要搞一个公众号,开发阶段可以申请一个公众平台测试账号. (进入到微信公众公众平台,找到开发者工具,点 ...

  4. 微信网页授权并获取用户信息

    介绍 在很多微信H5应用里,当用户访问第三方应用时就需要进行微信网页授权,并且很多涉及安全的操作我们必须要先获取用户信息才能继续,本文章简单介绍了微信授权流程,并通过申请微信测试账号来模拟网页授权,用 ...

  5. .netMVC企业微信网页授权+注册全局过滤器

    微信网页授权 达到效果:企业应用只能在微信中查看,在浏览器中打开企业页面,显示无权限! 原理,用session记录用户,如果用户已经通过微信授权,记录@Session["UserId&quo ...

  6. Java微信公众号开发微信网页授权之前端传递code方式获取用户信息

    本片博客讲解的网页授权分为两步,前端先传递backUrl(回调地址)到后台网页授权接口,该接口拿到回调地址后组装授权连接,重定向到前端页面,前端页面截取Code,传入后端获取用户信息方法,获取用户信息 ...

  7. Nodejs实现微信网页授权及正确配置JS-SDK接口

    原文链接:<Nodejs实现微信网页授权及正确配置JS-SDK接口>- 陈帅华 帅华君将在本文介绍基于Nodejs实现微信网页授权以及如何正确在前后端配置JS-SDK接口. 微信网页授权 ...

  8. 真-小白详解-Springboot微信网页授权!!!

    个人也是一个小白,记录自己开发微信网页授权的过程,其中有什么不足,欢迎各位指点!!! 开发前提: (1)Springboot的开发环境 (2)导入github的微信SDK <dependency ...

  9. 微信开发之微信网页授权获取openid

    不知觉间已经接触了几次微信支付开发,而要进行微信支付就需要用户的唯一标识:openid.还记得第一次获取用户openid的时候就踩了很多坑.这两天又接触了一下,想着索性就把他记录下来,也便于以后查阅 ...

最新文章

  1. eclipse静态部署tomcat
  2. java语言用什么编程_使用什么编程语言开发Java?
  3. 简易django项目之登录验证
  4. android uinput 按键_linux 虚拟输入设备(uinput)模拟鼠标和键盘的使用方法
  5. java客户端服务器代码_Java Socket通信 客户端服务器端基本代码
  6. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波18 - 低通、高通、带阻和带通滤波器、组合使用空间增强方法
  7. OJ1306-最长公共子上升序列【dp】
  8. ssh时,密码输入框(密码输入提示)很晚才出现的解决方法
  9. Python 处理各种编码的字符串
  10. 设置win10自动登录/免密码自动登录方法
  11. 揭开互联网金融健康发展意见神秘面纱
  12. 你“云”了吗?华为云带你看懂云桌面
  13. RabbitMQ 安装教程(CentOS版)
  14. 【ZZ】从入门到高阶,你需要刷哪些书?丨高中物理竞赛辅导书推荐
  15. docker push 过程 distribution源码 分析
  16. 计蒜之道 测试赛 (BCD)
  17. 半年时间破获电信诈骗大案:我是如何利用数据分析建模,从零基础做到的
  18. Boost电路连续、断续、空载状态分析与计算
  19. python三级菜单_Python 三级菜单
  20. BAT脚本,批量替换文件名的指定字符

热门文章

  1. 狂神说Linux笔记
  2. Lake Shore PT-100铂电阻温度传感器
  3. 国外大数据初创公司巨额融资 国内公司初长成
  4. 卫星导航之如何画出常见的图形世界地图、多路径、天空图等
  5. 基于K210的MNIST手写数字识别
  6. Python使用Plotly绘图工具,绘制散点图、线形图
  7. qnap虚拟linux,QNAP进阶教程:威联通NAS 虚拟机教程 安装精简版win10、软路由、群晖NAS系统!...
  8. win7计算机广告更改,Win7电脑如何找到带来弹窗广告的软件【图文教程】
  9. Invalid argument during startup: Failed to open the .conf file: redis-window
  10. Python库之数据可视化---Matplotlib