sa-token
sa-token
是一個很是強大的JavaWeb權限認證框架,其集成了諸多好用的特性,諸如:登陸驗證、權限驗證、自定義session會話、踢人下線 等等都可以在框架中一行代碼完成調用,官網地址:http://sa-token.dev33.cn/java
sa-token的令牌有效期
sa-token
提供兩種token自動過時策略,分別是timeout
與activity-timeout
,其詳細用法以下:程序員
timeout
timeout
表明token的長久有效期,單位/秒,例如將其配置爲2592000
(30天),表明在30天后,token一定過時,沒法繼續使用timeout
沒法續簽,想要繼續使用必須從新登陸timeout
的值配置爲-1後,表明永久有效,不會過時
activity-timeout
activity-timeout
表明臨時有效期,單位/秒,例如將其配置爲1800
(30分鐘),表明用戶若是30分鐘無操做,則此token會當即過時- 若是在30分鐘內用戶有操做,則會再次續簽30分鐘,用戶若是一直操做則會一直續簽,直到連續30分鐘無操做,token纔會過時
activity-timeout
的值配置爲-1後,表明永久有效,不會過時,此時也無需頻繁續簽
關於activity-timeout的續簽
若是activity-timeout
配置了大於零的值,sa-token
會在登陸時開始計時,在每次直接或間接調用getLoginId()
時進行一次過時檢查與續簽操做。 此時會有兩種狀況:算法
- 一種是會話無操做時間太長,token已通過期,此時框架會拋出
NotLoginException
異常(場景值=-3), - 另外一種則是會話在
activity-timeout
有效期內經過檢查,此時token能夠成功續簽
我能夠手動續簽嗎?
能夠! 若是框架的自動續簽算法沒法知足您的業務需求,你能夠進行手動續簽,sa-token
提供兩個API供你操做:session
StpUtil.checkActivityTimeout()
: 檢查當前token 是否已經[臨時過時],若是已通過期則拋出異常StpUtil.updateLastActivityToNow()
: 續簽當前token:(將 [最後操做時間] 更新爲當前時間戳)- 注意:在手動續簽時,即時token已經 [臨時過時] 也可續簽成功,若是此場景下須要提示續簽失敗,可採用先檢查再續簽的形式保證token有效性
- 例如如下代碼:
// 先檢查是否已過時 StpUtil.checkActivityTimeout(); // 檢查經過後繼續續簽 StpUtil.updateLastActivityToNow();
timeout與activity-timeout能夠同時使用嗎?
能夠同時使用! 二者的認證邏輯彼此獨立,互不干擾,能夠同時使用。框架
<br/><br/><br/><br/> 程序員交流qq羣:782974737 點擊加入url