java微信企业号40029_微信企业号OAuth2接口40029错误解决方案

java微信企业号40029_微信企业号OAuth2接口40029错误解决方案微信网页授权获取到的code只能使用一次(5分钟内有效),使用一次后,马上失效。页面授权跳转成功,根据code也换取到openid了。此时刷新页面,并不会再次进行授权,而是直接刷新了一下上一次授权跳转后的链接,带的还是上一次的code(如果你复制当前页面的链接,会发现它就是请求授权的链接,然而,刷新的时候,它访问的并不是这个请求授权链接)。因为上一次的code已经使用过,再根据…

大家好,又见面了,我是你们的朋友全栈君。

微信网页授权获取到的 code 只能使用一次(5分钟内有效),使用一次后,马上失效。

页面授权跳转成功,根据 code 也换取到 openid 了。

此时刷新页面,并不会再次进行授权,而是直接刷新了一下上一次授权跳转后的链接,带的还是上一次的 code (如果你复制当前页面的链接,会发现它就是请求授权的链接,然而,刷新的时候,它访问的并不是这个请求授权链接)。

因为上一次的 code 已经使用过,再根据这个 code 换区 openid,就会返回:{“errcode”:40029,”errmsg”:”invalid code, hints: [ req_id: Cf.y.a0389s108 ]”}

解决方式有很多种:

方式一:获取 openid 的时候,判断一下,如果为空,则重定向去授权,这样的话,不管怎么刷新,都没关系,一定能获取到 openid (这种方式太简单粗暴,虽然这个接口没有调用次数限制,但每次都授权,总感觉压力有点大)

方式二:将 openid 放到 session 里,如果 session 里取不到,再进行授权(微信里的 session 不知道退出登录会不会断开,已知关闭程序时会断。如果换个微信登录,session 没断,就不好了。只有一个微信号,没测试过!)

方式三:将 openid 放 cookie 里,一次授权,终生可用,看你 cookie 设置的有效期是多久了(不知道换个微信号登陆,cookie 里取出的是不是还是这个,是的话,也不好了。)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133611.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 分布式服务框架 Zookeeper安装和配置详解

    分布式服务框架 Zookeeper安装和配置详解

    2021年5月26日
    112
  • hybrid开发_混合app开发用什么技术

    hybrid开发_混合app开发用什么技术转载请标明出处:一片枫叶的专栏上一篇文章中我们介绍了Android开发中经常会涉及到但又常常被忽视掉的开发者模式。主要讲解了包括如何打开手机的开发者模式,开发者模式中各个菜单的意义和作用,如何清除手机App数据,以及清除手机App数据具体清除那些数据等知识点,具体关于Android中开发者模式的知识,可参考我的:Android产品研发(十六)–>开发者选项本文将介绍Android

    2022年9月23日
    4
  • java多线程–同步锁、

    java多线程–同步锁、同步代码块:语法:synchronized(同步锁){     需要同步操作的代码}—————————————————同步锁:为了保证每个线程都能正常执行原子操作,Java引入了线程同步机制.同步监听对象/同步锁/同步监听器/互斥锁:对象的同步锁只是一个概念,可以想象为在对象上标记了一个锁….

    2022年6月13日
    29
  • idea 设置maven 自动更新[通俗易懂]

    idea 设置maven 自动更新[通俗易懂]1.file->Settings2.Maven->Importing->勾选ImportMavenprojectsautomatically

    2022年9月28日
    4
  • Java安全之反序列化回显研究

    Java安全之反序列化回显研究0x00前言续上文反序列化回显与内存马,继续来看看反序列化回显的方式。上篇文中其实是利用中间件中存储的Request和Response对象来进行回显。但并不止这么

    2021年12月13日
    68
  • 编写测试用例的思路_测试用例的内容

    编写测试用例的思路_测试用例的内容前言用过pytest的小伙伴都知道,pytest的运行方式是非常丰富的,可以说是你想怎么运行怎么运行,想运行哪些运行哪些,那httprunner是否同样可以呢?运行用例的各种方式运行指定路径的用

    2022年7月31日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号