需求:
只要用戶有操作行為硝枉,token永不過期的做法
token過期時間一般由后臺控制撤卢,例如后臺設(shè)置2個小時token將會過期艳悔,那么無論用戶有沒有正在操作,2個小時后讥电,token的值都會過期蹂窖。
但是,用戶肯定不希望是這種效果恩敌,操作到一半然后因為到了2個小時就強制退出登錄瞬测,換誰都會有點炸毛。如果后臺不能處理的話,其實也可以通過前端進行處理月趟,但前提是必須由后臺寫多一個可以單獨獲取新的token的接口灯蝴。
思路:
像我們做后臺管理系統(tǒng),一般token都會保存起來給每一個請求調(diào)用孝宗。
所以穷躁,每次在登錄的時候,我們在保存token的同時因妇,順便把當(dāng)前登錄的時間戳也保存下來问潭。并把時間戳存放在cookie中。(時間戳A)
在登錄之后婚被,我們每一個請求都要獲取一下時間戳狡忙。(時間戳B)
假設(shè)token 兩個小時后過期,我們每一次請求的時候都做一個判斷:
時間戳B - 時間戳A > 1個小時 (當(dāng)然址芯,你也可以設(shè)置1個半小時之類的)
那么我們調(diào)用接口重新獲取token.?
代碼實現(xiàn):
具體代碼就不放上來的灾茁。
但是可以說幾點需要注意的:
1、每次重新獲取token之后是复,也要重新設(shè)置cookie中的時間戳删顶,設(shè)置為當(dāng)前時間戳竖螃,這樣他就初始化了淑廊。
2、重新獲取token的時間不要太晚特咆,例如季惩,兩個小時過期,不要等到1個小時50分才去請求重新獲取token腻格,
? ? ? 盡可能早點獲取画拾。