主要是因为最近做企业微信开发的时候,发现 Access Token 的有效期机制,和公众号不一样,所以想问问各位,你们的项目中都是怎么管理 Access Token 的?
公众号:
- 在有效期内刷新,得到新的 Access Token
- 定时任务每小时刷新一次就行了
企业微信:
- 在有效期内刷新,得到相同的 Access Token,相当于是给上一个 Access Token 续命了;
- 超出第一个的有效期之后,再刷新,可以得到新的 Access Token,同时上一个 Access Token 仍然可用;
- 此时有两个 Access Token 同时可用,而前面那个 Access Token 失效时间未知…
- 这样一来公众号的那套管理机制就有可能出 bug 了
在企业微信的开发文档中还有这么一句话:
- 企业微信可能会出于运营需要,提前使 access_token 失效,开发者应实现 access_token 失效时重新获取的逻辑。
这让我很蛋疼…
expires_in 可能提前失效,提前刷新又会导致 expires_in 延续,延续之后什么时候失效又不一定,那 expires_in 的作用到底是什么…