首先我舉例說明 獲取這個干嗎用的
在微信小程序開發(fā)文檔中的服務(wù)端接口中 有很多需要tonken 比如:
還有調(diào)用圖片和內(nèi)容是否違規(guī)的接口
等等 這些都需要用到token筷黔,但是你獲取過token 你就會知道,他得到的是這樣的一個json格式的 字段?
{"access_token":"29_YRzxPk9VeB7li4xKkXCmdsWtbAvbP3Ob1yOq1-VqvDvbqZLBBznGjvylvbqE4LvKC4EUuPm3wPAGN3lWbtg7vvRtWCqhCrbmorTwZKs4U3Uy6FvatV3og5XVEMh4oKcjsxsuILgGwEF0axsmCXIbAHAHCN","expires_in":7200}
有個expires_in 字段 這個就是token 的有效期 你倆個小時后再吧這個token往人家微信服務(wù)端傳 就會報錯
關(guān)于token定時刷新的功能網(wǎng)上有很多 說的很高端 要用中間服務(wù)器、要用緩存機制等等铅乡,其實呢夏漱,不用那么復(fù)雜
下面我們用Redis超輕量級的數(shù)據(jù)庫結(jié)合java進行token的實時刷新 保證調(diào)用的時候不會調(diào)用出失效的token
關(guān)于Redis下載安裝 如果不懂的同學(xué)可以問我(wx:xiaopeng550580)
安裝完畢后 我們開始使用他,Redis最重要的一個功能就是可以設(shè)置key 的有效時間霉囚,如果到時間他會自動刪除掉這個key谭溉,這是符合我們邏輯 的一個功能墙懂,下面寫代碼:
Redis驅(qū)動依懶:<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
我們先進行查詢 看aa 也就是token 在沒在Redis數(shù)據(jù)庫中,
然后進行判斷
這樣寫出了思路就很明確了:
1. 我調(diào)用后臺接口先去Redis獲取token扮念,如果獲取到了 我直接返回损搬,
2.如果沒有獲取到 就證明key值已過期,就去重新調(diào)用微信的獲取token接口進行獲取柜与,
3.獲取到token后 進行josn解析巧勤,然后存儲到Redis中 js.set 參數(shù)照著我這樣傳就好了,
4.這樣就能實現(xiàn)對token 的管理弄匕,我們在需要用到token 的地方 直接調(diào)用這個方法 就可以得到新鮮出爐不過期的token 了
如環(huán)節(jié)中有不懂的 可以咨詢我 (wx:xiaopeng550580)