-
Notifications
You must be signed in to change notification settings - Fork 331
Open
Description
目前系统中较多应用使用微信token,最好把fastweixin单独部署成服务。(之前部分系统存在实现获取token的逻辑)
但是基于现状,尚未实现。因此希望可以accessToken可以手动刷新。
比如场景:用户手动操作了刷新accessToken之后,fastweixin报错,但是对于报错后不支持直接刷新,反而等到7100s之后才会刷新
public String getAccessToken() {
long now = System.currentTimeMillis();
long time = now - this.weixinTokenStartTime;
try {
/*
* 判断优先顺序:
* 1.官方给出的超时时间是7200秒,这里用7100秒来做,防止出现已经过期的情况
* 2.刷新标识判断,如果已经在刷新了,则也直接跳过,避免多次重复刷新,如果没有在刷新,则开始刷新
*/
if (time > 7100000 && this.tokenRefreshing.compareAndSet(false, true)) {
LOG.debug("准备刷新token.............");
initToken(now);
}
} catch (Exception e) {
LOG.warn("刷新Token出错.", e);
//刷新工作出现有异常,将标识设置回false
this.tokenRefreshing.set(false);
}
return accessToken;
}
Metadata
Metadata
Assignees
Labels
No labels