接口交互時access_token與refresh_token如何處理過期問題?

最近在做API開發,主要是接口交互,開發文檔涉及到授權的access_token與refresh_token

有2個疑問:

1,access_token過期可以通過refresh_token獲取,而爲什麼不是再獲取一下access_token就好呢

2,refresh_token過期呢?接口怎麼獲取?

先問問度娘

網上基本都是介紹微信開發的模式,有一個人寫的還比較有意思

***************************************************************************

原文:https://blog.csdn.net/qq_39403734/article/details/79141429 

問題:access_token與refresh_token之爲什麼要用refresh_token刷新不重新獲取access_token?

原因是access_token只保存2個小時,而refresh_token保存30天;

當access_token在登錄2個小時後過期了,難道就要用戶在重新登錄嗎?

當然不可能,這個時候refresh_token就有用武之地了;

那又有同學問了,那我直接重新訪問

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

不就能獲取access_token了嗎?爲什麼要用refresh_token刷新?

那麼重點就來了,上面的訪問路徑需要參數code,而code是一次性的參數,就是用一次之後就沒用了的,需要重新獲取,而重新獲取就需要用戶再一次掃碼或者賬號登錄才能獲取code,所以到這裏應該就能明白爲什麼要用refresh_token刷新而不是重新用code來獲取access_token了;

***********************************************************************************
上面回答了第一個問題,第二個問題是通過登陸來解決,但接口交互是不存在登陸的。找到下面的解釋:

refresh token需要過期時間麼?
客戶端需要保存token和refresh token,以便下一次訪問能繼續。如果客戶端是瀏覽器,那麼兩個token都需要設置過期時間;但是可以設置得長一點,可以以天爲單位(例如7天、15天);如果客戶端是一個服務器,那麼refresh token可以永久有效,直到下一次登錄,refresh token本身被更新爲止。

可以理解成把refresh token設置爲長期有效,除非有客戶端登陸更新,問題暫時解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章