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 里取出的是不是还是这个,是的话,也不好了。)

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java8新特性 stream流常用方法

    Java8新特性 stream流常用方法Java8API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象。StreamAPI可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流,流在管道中传输,并且可以在管道的节点上进行处理,…

  • java解析xml格式的节点属性值

    java解析xml格式的节点属性值xml示例:<ResponseContent><Parameter><Document><RecordSetid=”1″><Mastername=”purchase”><Record><Fieldname=”orderNumber”value=”1P05-151200172″/>

  • Git管理工具常用

    适用场景:通常我们到了新公司或者新的部门,一般会给你一个git的源码路径,如:http://ip:port/xxxx/xxx.git。这个时候我们需要拉取代码开发,则需要用到一些常用的工具!这里分享一下个人的经验。准备环境:1、下载两个工具(Git-2.16.2-64-bit.exe和TortoiseGit-1.8.14.0_64bit.1436148947),前者为本地…

  • html使用vue axios,使用 Vue和axios

    html使用vue axios,使用 Vue和axios昨天写完了博客以后,有人就在我的博客下面留言说现在不是使用了Axios了吗?我赶紧再把Axios的例程给补上,并且做一个更新。其实vue-resource并不复杂,就是不稳定。Vue官方放弃它也是对的,作者是这样子说的最近团队讨论了一下,Ajax本身跟Vue并没有什么需要特别整合的地方,使用fetchpolyfill或是axios、superagent等等都可以起到同等…

    2022年10月29日
  • python 装饰器

    python 装饰器本文首先介绍了什么是闭包函数,然后从闭包函数引入到了函数装饰器、类装饰器,之后又说明了如果一个函数被多个装饰器同时修饰时它们的执行顺序是什么样的,最后介绍了避免装饰后原函数信息丢失的解决方案。

  • python字典详解_python字典get方法

    python字典详解_python字典get方法字典字典的key和value一一对应的,字典是可变的,也是有序的(python3.6版本开始字典有序),可迭代的增加元素当key不存在时,直接赋值a={"status"

发表回复

您的电子邮箱地址不会被公开。

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