refreshtoken用mysql_微信access_token和refresh_token保存于redis
此处以保存用户授权access_token为例,接口调用access_token可在项目启动时进行缓存。部分代码如下:
@Autowired
private RedisTemplate redisTemplate;
@Value("${myapp.redisWxUserAccessToken}")
private String redisWxUserAccessToken;
// 获取
public String getUserAccessToken(Object userId) {
String accessToken = null;
if(StringUtils.isEmpty(userId)) return accessToken;
String accessTokenStr = (String) redisTemplate.opsForHash().get(redisWxUserAccessToken, String.valueOf(userId));
long now = (new Date()).getTime();
if(!StringUtils.isEmpty(accessTokenStr)) {
String[] arr = accessTokenStr.split("#");
if(now < Long.valueOf(arr[1])) {
accessToken = arr[0];
}
}
if(StringUtils.isEmpty(accessToken)) {
accessToken = getUserAccessTokenByRefreshToken(userId);
}
return accessToken;
}
// 重新获取
Object expiresIn = accessTokenMap.get("expires_in"); // 调用微信授权接口后,返回的expires_in参数
String value = accessTokenNew + "#" + getNowExpiresIn(expiresIn); // 此处是设置有效期
redisTemplate.opsForHash().put(redisWxUserAccessToken, String.valueOf(userId), value);
public Long getNowExpiresIn(Object expiresIn) {
long now = (new Date()).getTime();
if(expiresIn == null) return now;
Long expiresMs = Long.valueOf(String.valueOf(expiresIn)) - 15 * 60;
return expiresMs * 1000 + now;
}
refreshtoken用mysql_微信access_token和refresh_token保存于redis相关推荐
- 微信公众平台开发之微信access_token如何有效长期保存
随着微信使用越来越广泛,微信公众平台开放了许多接口以提供更多个性化的服务,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等,开发者在调用这些接口时,都需要传入一个相同的参数ac ...
- java单例模式保存微信access_token
微信access_token 是有时间限制的 每天获取的次数是有限的 所有我们要保存获取到的access_token ,在快要过期的时候在重新获取. 官方文档:https://mp.weixin.qq ...
- php定时刷新token,PHP 定时任务获取微信access_token的简单示例
搜索热词 感兴趣PHP 定时任务获取微信access_token的简单示例的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧. 最近开发微信公众平台,公众号调用各接口时都需使用access_ ...
- 微信开发 --- 调用微信上传图片接口,并保存到自己的服务器
微信开发 - 调用微信上传图片接口,并保存到自己的服务器 整体思路是这样的: 1.先把手机上的图片上传到微信服务器,然后返回一个图片ID 2.在通过后台根据ID从微信后台拿到流,保存到服务器 前几个步 ...
- 微信jssdk ajax 获取签名,【Golang版】微信access_token、jsapi_ticket、signature签名算法生成示例,开箱即用...
# WXToken 项目地址:[https://github.com/henson/WXToken](https://github.com/henson/WXToken) 因为手上有一个项目需要用到微 ...
- 既生瑜何生亮 access_token VS refresh_token
中国有句老话, 既生瑜何生亮, 既然有我周瑜在世, 为什么老天还要一个诸葛亮啊? 同样的, 众所周知, 在 OAuth 2.0 授权协议中, 也有两个令牌 token , 分别是 access_tok ...
- 【PC工具】更新微信语音转mp3保存备份方法及工具,微信语音备份方法,silk转mp3工具...
微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 210605更新蓝奏云下载连接. 不知道蓝奏云抽啥风,感觉像是域名到期被别人给抢注了. ...
- 【PC工具】微信语音转mp3保存备份方法及工具,微信语音备份方法,silk转mp3工具...
微信是大家常用的通信工具,有些聊天记录的语音是我们想要长期保存或转发给其他人的.今天介绍一下微信语音的备份保存方法. 收藏的方法方法很简单,长按语音点击收藏就可以了,以后想听可以在"我&qu ...
- 微信长按网页保存为截图
本文是我处理问题时看到的一篇博客,感觉很详细,所以保存了, 原文地址 H5项目中的一个重要功能需求:实现微信长按网页保存为截图. 这里有个栗子(请用微信打开,长按图片即可保存):3分钟探索你的知识边界 ...
最新文章
- Cisco对中国CCIE认证下重手了
- QT的QQmlPropertyMap类的使用
- Eclipse+Maven创建webapp项目一
- 互联网核心应用(搜索/推荐/广告)算法峰会
- 2.10.PHP7.1 狐教程-【PHP 函数】
- C# 计算程序运行耗时的方法
- Arcgis学习视频
- 2022鹏城杯CTF---Crypto wp
- 【bat】bat批处理安装与卸载软件,自动安装
- 计算机如何安装无线网络适配器,小编教你电脑无线网卡驱动怎么安装
- SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法 详细出处参考:http://www.jb51.net/article/19233.htm
- 工业相机的镜头接口知识介绍
- javascript 数据类型与类型转换
- miui10android系统耗电,小米声势浩大的MIUI10 系统升级只是更换个主题并且更加耗电?...
- 互联网日报 | 新浪同意被私有化;吉利汽车科创板首发过会;滴滴货运日单量持续破10万...
- python-test1
- 跳表是个好东西你值得拥有!
- 微服务架构Day04-SpringBoot之web开发配置
- Proxmox VE 7.2 备份恢复虚拟机
- JAVA小项目(1)——租车系统
热门文章
- mega5安装包_[MEGA DEAL] 2017年完全Java捆绑包(95%折扣)
- apache ignite_使用Apache Storm和Apache Ignite进行复杂事件处理(CEP)
- lambda设计模式_使用lambda的装饰器设计模式
- 1.0jpa 2.0_JPA 2.1如何成为新的EJB 2.0
- Spring Boot删除嵌入式Tomcat服务器,启用Jetty服务器
- J2Pay –实施网关
- 使用AWS Lambda在Go中构建RESTful API
- 首选System.lineSeparator()以用Java编写系统相关的行分隔符字符串
- Java向后不兼容历史的观察
- 带有API网关的AWS Lambda