記 小程序 access_token 的保存解決方案

最近開發(fā)小程序,有一個功能是分享頁面,因為回來的頁面是要帶參數(shù)點,便決定使用生成小程序碼來解決這個功能,先看官方的說明文檔: 我使用的是第二種方式,目前這種方式生成小程序碼數(shù)量不受限制!

這個借口的一個參數(shù)是要用的 access_token 的,但是 access_token 是有有效期到,同樣官方文檔也建議我們:

1、建議公眾號開發(fā)者使用中控服務(wù)器統(tǒng)一獲取和刷新Access_token,其他業(yè)務(wù)邏輯服務(wù)器所使用的access_token均來自于該中控服務(wù)器,不應(yīng)該各自去刷新,否則容易造成沖突,導(dǎo)致access_token覆蓋而影響業(yè)務(wù);

同時我使用的是小程序的 wafer2-node-sdk 解決方案,這個是基于 Koa2 來實現(xiàn)的,寫接口什么的也比較順利,但是竟然沒找到全局變量的功能,然后網(wǎng)上搜,有說用數(shù)據(jù)庫的,緩存的,我不想這么一個簡單的功能就用這個呀,所以我開始走上了彎路:

1.第一個版本使用 json 文件來存儲,搭配定時器來實現(xiàn),但是第一次可以用,但是再以后卻開始 token 過期了.不解:后來意外的發(fā)現(xiàn),因為我是用 require('./**/**.json') 的方式引入的 json 文件,這樣帶來一個問題,json 發(fā)生變化是,那個實例并不會發(fā)生改變,導(dǎo)致取到的永遠是第一次加載時的值.

2.沒辦法,只有上 redis 了,一開始感覺一個簡單的功能沒必要,其實用 redis 也比較方便,服務(wù)器使用的 CentOS,然后yum install redis -y 就可以了,然后搭配 redis 庫, 配合 expire 存儲,也實現(xiàn)了功能,同時使用 schedule-node 來執(zhí)行定時刷新,我設(shè)置的刷新頻率是一個小時一次,剛開始還不錯,可是用完還是會報過期.懵逼中.

3.無意中搜到一篇文章,簡直是救命稻草:原文找不到了,意思是同一個 AppID 在其他地方請求時也會導(dǎo)致過期,我擦,因為我在本地也有開發(fā)環(huán)境,也會定時請求,趕緊把本地的請求關(guān)閉,同時線上開啟了一個獲取 access_token 的接口,本地要用都從這個接口獲取,幾天下來,總算解決了問題.同時使用 node_env 來判斷線上還是本地,避免認為導(dǎo)致的錯誤.

希望對大家有幫助.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評論 19 139
  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,240評論 3 119
  • “事實上,這是一個眾人皆知的竅門。我們可以通過很多不同的方法。在過去的一年半我想更加為自己的身體負責(zé)?,F(xiàn)在晚上6點...
    云游四方的旅人閱讀 358評論 0 0
  • 簡書的朋友大家好,我是小萬,你可以叫我萬總或者萬萬,第一次認識,有點不知所措。 我們是一個年輕的寫手團隊,年輕一般...
    萬物志閱讀 191評論 0 0
  • let's make time for the people who matter most. 讓我們?yōu)樽钪匾娜?..
    VI8080閱讀 376評論 0 0

友情鏈接更多精彩內(nèi)容