一個自動刷新微信access_token的服務:TokenBoy
一個自動刷新微信Token的服務(A service base on tornado use to auto refresh weixin token)
TokenBoy是一個自動定時刷新Token的服務,可以每隔一段時間自動獲取token,保存在內存中,再通過一個web接口提供token給本地其他程序。
作用
從微信服務器獲取的access_token,有效期只有一段時間(目前為7200秒)。access_token過期后就無法使用,需要重新獲取。而每次獲取新的access_token之后,老的access_token自動失效。
這種情況下如果在web應用的各個邏輯點對token進行刷新,很容易出現沖突。所以最好在一個單獨的服務里面處理定時刷新token的工作。
TokenBoy就是為了解決這個問題而存在。
配置
TokenBoy可以只需要簡單的配置即可使用。除了可以用于微信,還可以用于其他有類似接口的地方。
編輯 config.py,設置需要監聽的ip地址和端口,以及獲取Token的接口。
bind_ip = '0.0.0.0' bind_port = 8888 token_sources['weixin'] = { 'url':'https://api.weixin.qq.com/cgi-bin/token', 'method':'GET', 'args':{ 'grant_type':'client_credential', 'appid':'*********************', 'secret':'*********************' } } ps:這里可以用不同的名字(key)添加多組信息,tokenBoy都會進行刷新。后面獲取的時候使用對應的名字獲取即可
運行
python3 tokenBoy.py
訪問 http://127.0.0.1:8888/token?name=weixin 返回如下:
{"token": "TJWDx-v1a4YV6ZUEpG9P5dtiK3n62J0mxBC99NMy1Mz3aL0KnIk19qJWvbmSyXMORHJTbVwrTZXF8-K_6F7jpInGMfxjlBY8xOc18YItKeYOKXcADAZVI"}
其他需要使用Token的代碼可以通過以上的方式從tokenBoy獲取當前有效的token
也就是tokenBoy從微信服務器獲取token,其他程序從tokenBoy獲取token →_→
依賴
- python3
- tornado
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!