首页 分享 微信token重复请求导致redis缓存失效的问题

微信token重复请求导致redis缓存失效的问题

来源:萌宠菠菠乐园 时间:2024-09-21 13:15

问题描述

问题导致的源头:{"errcode":42001,"errmsg":"access_token expired hint: [8W2pha0008vr 72!]"}

这个提示意思是说token失效了,为什么会失效,因为在服务器上面也有一个获取token的线程,而我本地测试也在获取token,相互覆盖了。我本地代码实现的逻辑是:第一次拿到token就放入缓存,设置有效期1小时,在这1小时内都去redis中取。这时候如果其他地方也用同样的APPID和APPSECRET去获取token,那我这里redis里面的不就失效了,再用它去请求其他数据就会返回上面这个json。

而我对于返回错误码的处理是返回一个空对象,并没有尝试重新获取;

问题解决

问题解决的最直接方案当然就是增加一个机制,判断这个错误码,并尝试重新获取token,并刷新缓存。

问题的引申

这里引申出来另外一个问题,记录一下。这个问题是因为我没有对不同的APPID进行区分导致的。

举个例子:假设微信的access_token在redis中的key是wechat_token,每次使用都会去取,如果这时候我换了另外一个APPID,但是token还是使用这个,岂不是GG。下次记得这种情况一定要进行区分(wechat_token+":"+APPID)

微信公众号的二维码,有效期内生成的URL是否会覆盖之前的?

经过测试是不会的,在有效期内连续请求生成二维码两次,拿到的两个链接在期限时间内都是可以使用的。

测试代码:

private static String QRCODE_CREATE_URL = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN";

private static String QRCODE_GET_URL = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET";

public static String getQrCodeUrl(String access_token) {

String qrCodeCreateUrl = QRCODE_CREATE_URL.replace("TOKEN", access_token);

JSONObject qrJsonObj = new JSONObject();

qrJsonObj.put("expire_seconds", 3600);

qrJsonObj.put("action_name", "QR_SCENE");

String qrJsonStr = HttpClientUtil.httpsPost(qrCodeCreateUrl, qrJsonObj.toJSONString());

if (qrJsonStr.contains("errorcode")) {

System.out.println(qrJsonStr);

return "";

}

String ticket = null;

try {

ticket = JSON.parseObject(qrJsonStr).getString("ticket");

} catch (Exception e) {

System.out.println(qrJsonStr);

return "";

}

if (StringUtils.isNotEmpty(ticket)) {

return QRCODE_GET_URL.replace("TICKET", ticket);

}

return "";

}

相关知识

微信token重复请求导致redis缓存失效的问题
错误;您所请求的网址(URL)无法获取
基于Vue3+Node Koa+WebSocket实现的“宠物收养交流平台”这是一个宠物收养交流平台web应用,主要分为
微信支付
宠物之家项目
基于SpringBoot+Vue+uniapp的宠物咖啡馆平台(源码+lw+部署文档+讲解等)
基于Java的宠物服务平台的设计与实现(源码+lw+部署文档+讲解等)
最新微信小程序选题推荐
基于PHP的宠物爱好者交流平台管理系统设计与实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+微信小程序宠物美容预约平台设计和实现(源码+LW+部署讲解)

网址: 微信token重复请求导致redis缓存失效的问题 https://www.mcbbbk.com/newsview204587.html

所属分类:萌宠日常
上一篇: 谁是电梯安全责任人?电梯安全条例
下一篇: 全球首款「碳中和」宠物衣服“持证

推荐分享