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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ssl证书怎么安装到服务器_iis ssl证书

    ssl证书怎么安装到服务器_iis ssl证书Zimbra邮件服务器SSL证书部署

    2022年4月21日
    66
  • java笔试题库_java笔试题50道 收藏版

    java笔试题库_java笔试题50道 收藏版1、在JavaEE中,Servlet是在服务器端运行,以处理客户端请求而做出的响应的程序,下列选项中属于Servlet生命周期阶段的是()A、加载和实例化B、初始化C、服务D、销毁E、以上全部答案:E2、在JavaEE中的MVC设计模式中,()负责接受客户端的请求数据A、JavaBeanB、JSPC、ServletD、HTML答案:C3、过滤器应实现的接口是()。A、HttpServle…

    2022年7月7日
    32
  • phpstrom 2021.3激活码 3月最新注册码

    phpstrom 2021.3激活码 3月最新注册码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    41
  • 一文读懂微生物扩增子16s测序[通俗易懂]

    一文读懂微生物扩增子16s测序[通俗易懂]微生物多样性测序结果如何看?做过16s测序的小伙伴们都知道测完之后会拿到一份结果报告但这并不代表可以开始写文章了看似一大堆数据图表却不知如何下手这是很多人头疼的地方那么怎样给报告中的数据赋予灵魂让它真正成为对你有帮助的分析呢?一文扫除困惑首先什么是16SrRNA?16SrRNA基因是编码原核生物核糖体小亚基的基因,长度约为1…

    2022年6月8日
    52
  • pycharm全文搜索_pycharm查找快捷键

    pycharm全文搜索_pycharm查找快捷键在pycharm中如何全局搜索关键词

    2022年8月28日
    1
  • 基于jenkins的CICD使用

    基于jenkins的CICD使用前言:这篇文章主要讲一讲基于jenkins的CICD使用基于jenkins的CICD使用一、简介二、CICD流程图三、CICD效果四、jenkins编译方式五、新创建job六、pipeline脚本说明七、疑问解答与加群交流学习一、简介为了提升线下测试效率,缩短测试时间,提升提测代码质量,规范流程,缩短测试准备和执行时间,缩短问题定位时间,提供预测性指标,规范CICD流程,以提升整体团队效率。二、CICD流程图三、CICD效果大致可查看到的job如下:点击其中可查看具体编译情况:四、

    2022年6月14日
    34

发表回复

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

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