如何管理第三方接口token过期时间
背景:
隨著微服務(wù)的盛行,做開發(fā)時(shí)不可避免的要涉及第三方接口,安全起見,這些接口都會(huì)需要一個(gè)token參數(shù)。而token一般都會(huì)有一個(gè)過期時(shí)間,比如2小時(shí)或者30分鐘。那么如何在自己的應(yīng)用中存儲(chǔ)并管理這些token呢?
常見方案:
內(nèi)存緩存;第三方緩存
我們一般都會(huì)給每個(gè)第三方設(shè)置一個(gè)過期時(shí)間參數(shù),使用的時(shí)候判斷當(dāng)前token是否過期,如果過期則重新獲取。
個(gè)人建議的方案:
如果第三方不多(一般也不會(huì)很多,撐死了1000個(gè)第三方接口?),直接就把每次獲取的token放到一個(gè)HashMap中,根據(jù)第三方名稱獲取對應(yīng)的token直接請求對應(yīng)的接口,如果返回錯(cuò)誤碼,而且錯(cuò)誤碼標(biāo)志當(dāng)前token過期,則重新獲取token,并更新HashMap(注意加鎖),重新請求。這種方案不再需要判斷token是否過期,存儲(chǔ)token的時(shí)候不再需要記錄token獲取時(shí)間,也不需要過期參數(shù)。設(shè)置過期參數(shù)的缺點(diǎn)就是,如果第三方過期時(shí)間有修改,本身的應(yīng)用也需要重新配置參數(shù)、生效。從設(shè)計(jì)上來說,過期時(shí)間是由第三方接口管理的,我們自己的應(yīng)用就不要再判斷了。
當(dāng)然我的方案也是有前提的:第三方要返回token是否過期的錯(cuò)誤碼。如果不返回token是否過期的錯(cuò)誤碼,或者從錯(cuò)誤消息無法判斷token是否過期,我相信無論哪種方案都是不可行的。畢竟如果token過期了,調(diào)用的時(shí)候卻判斷不出來,這樣的接口想想都不可思議。還是不要調(diào)用的好。
總結(jié)
以上是生活随笔為你收集整理的如何管理第三方接口token过期时间的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eyoucms
- 下一篇: Arcgis 中国区技术支持 官网