在调用第三方接口时,需要带Token进行验证是很常见的做法,像企业微信/公众号之类,需要先获取access_token,在之后的接口调用中,需要bearer这个token,进行调用,下图为公众号access_token说明

一般在分布式环境下,或者多人开发时,使用数据库或者redis来保存,防止出现多次获取,导致服务器不稳定。
在使用forge时,源码中给到了一个用Java Timer类做定时任务的方式,记录如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| public class OAuth2TwoLegged {
public Credentials credentials;
public Credentials authenticate() { if (credentials != null && credentials.notExpired()) { return credentials; }
this.credentials = doAuthenticate();
Timer timer = new Timer(); timer.schedule(new TimerTask(){ @Override public void run() { authenticate(); } }, 115 * 60 * 1000); }
public static class Credentials { private String accessToken; private long expiresAt; } }
|
当然,这只适用于单机模式下。