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

在写一个微信服务号的 api wrapper,微信的文档建议用一台中控机去刷新 access_token,其他逻辑服务器都到这台机器去取,那么这个 api wrapper 是否应该提供刷新 access_token 的方法?

  •  
  •   goofansu · 2015-05-27 11:18:59 +08:00 · 2132 次点击
    这是一个创建于 3268 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我感觉access_token应该由用户自己管理,因为假设有两个逻辑服务器都用了这个api wrapper,如果它们分别去刷新了access_token,那么总有一个access_token是无效的。

    我现在的做法是单独一个程序定时刷新access_token,其他程序去读这个access_token,用户使用api wrapper的时候,必须传入access_token。例如下面这样的代码:

    Wechat::REST::Client.new(*access_token*)

    请问我这么理解对吗?谢谢

    6 条回复    2015-05-27 13:50:48 +08:00
    kslr
        1
    kslr  
       2015-05-27 11:36:40 +08:00   ❤️ 1
    如果你只是一个账号的话,不用太在意,做下缓存就行了。
    goofansu
        2
    goofansu  
    OP
       2015-05-27 11:46:53 +08:00
    @kslr 比如我开了两个进程,用nginx负载均衡,这样是不是就会有上面说的问题?
    kslr
        3
    kslr  
       2015-05-27 11:51:48 +08:00   ❤️ 1
    @goofansu 会,但需要的地方也就后台一些操作和JSSDK的签名,我这里有几十个微信号这种几率太低了,我觉得可以不必处理。
    goofansu
        4
    goofansu  
    OP
       2015-05-27 12:09:22 +08:00
    @kslr 好的,非常感谢
    iyaozhen
        5
    iyaozhen  
       2015-05-27 13:24:23 +08:00
    可以暴露出一个获取 access_token 的方法。

    然后把 access_token 的值和过期时间存起来,每次取值的话判断下时间。业务方也不用去刷新吧。
    goofansu
        6
    goofansu  
    OP
       2015-05-27 13:50:48 +08:00
    @iyaozhen 谢谢。对,我的意思就是业务方不要刷新,有一个专门的服务去刷新
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2135 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 16:19 · PVG 00:19 · LAX 09:19 · JFK 12:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.