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

2015-05-27 11:18:59 +08:00
 goofansu

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

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

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

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

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

然后把 access_token 的值和过期时间存起来,每次取值的话判断下时间。业务方也不用去刷新吧。
goofansu
2015-05-27 13:50:48 +08:00
@iyaozhen 谢谢。对,我的意思就是业务方不要刷新,有一个专门的服务去刷新

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/194058

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX