V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
34C
V2EX  ›  问与答

[微信开发] 请问你们都是怎么管理 Access Token 的?企业微信的蛋疼设计…

  •  1
     
  •   34C · 2018-07-19 02:18:55 +08:00 · 4023 次点击
    这是一个创建于 2320 天前的主题,其中的信息可能已经有所发展或是发生改变。

    主要是因为最近做企业微信开发的时候,发现 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 的作用到底是什么…

    3 条回复    2018-07-19 10:09:01 +08:00
    EricFuture
        1
    EricFuture  
       2018-07-19 08:24:52 +08:00
    这个只要返回错误码为 access_token 无效,再获取一个 access_token 就好了呀
    HanSonJ
        2
    HanSonJ  
       2018-07-19 09:40:13 +08:00
    awanabe
        3
    awanabe  
       2018-07-19 10:09:01 +08:00
    用 redis + expire
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   912 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:53 · PVG 05:53 · LAX 13:53 · JFK 16:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.