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)


相关推荐

  • pkl文件是什么_python pkl文件

    pkl文件是什么_python pkl文件这里只介绍关于字典类型和列表类型的数据的存储,其他格式的请君自行探索。1、字典类型importpickle#首先导入这个库,没有安装的话,自行百度,很简单dict_data={“name”:[“张三”,”李四”]}withopen(“dict_data.pkl”,’wb’)asfo:#将数据写入pkl文件pickle.dump(dict_data,fo)with…

  • install scim to ubuntu

    install scim to ubuntu

  • pythonwhile冒泡排序_python冒泡排序

    pythonwhile冒泡排序_python冒泡排序#冒泡法排序ListBubbleSort.pyfish_records=[18,8,7,2,3,6,1,1]#原始排序i=0#循环控制变量compare=0#比较元素初始值fish_len=len(fish_records)#获取列表长度whileij=1…

    2022年10月16日
  • 简单的WebService创建+发布Tomcat(java WebService)「建议收藏」

    简单的WebService创建+发布Tomcat(java WebService)「建议收藏」本文完全是为自己的学习过程做一个记录,大佬敬请留言指点,勿喷。一、本文环境为eclipse2019-3,jdk1.8,Tomcat7。二、WebService创建俩种方式,1、据IDE自带的webservice生成工具进行。2、通过创建servlet并利用构造函数进行publish。(具体的是利用CXF、axis等哪种框架,没搞明白,希望看见的大佬可以留言)三、1、据IDE自带的webse…

    2022年10月16日
  • 滑动窗口 leetcode_滑动窗口的概念

    滑动窗口 leetcode_滑动窗口的概念原题链接给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值————— —–[1 3 -1] -3 5 3 6 7

  • BAPI 列表[通俗易懂]

    BAPI 列表[通俗易懂]BAPIListNameoffunctionmoduleShorttextforfunctionmoduleBAPIsf.BORobj.BUS4003(AddrContPart)BAPI_CHARACT_GETLISTBAPIforCharacteristics-FindName0002CompanyCodeBusinessObjec…

发表回复

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

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