請問
1 是不是使用jwt,登錄時生成好的token可以不用放入redis,直接在攔截器驗證請求頭的token進行驗證也可以呢?
2 當過期重繪完token后,前端怎么再獲取呢,有點暈。
希望你回復下,謝謝
uj5u.com熱心網友回復:
1 看你的token都有什么資訊,如果驗證token的資訊足夠,可以不放redis2
后臺要驗證token
前端發送請求帶著token,后臺驗證token過期,重定向到非法頁面,引導用戶重新登錄或重新獲取token(動態口令之類的)
uj5u.com熱心網友回復:
你說的重繪token是自動續費的那種還是要重新登錄的那種呢uj5u.com熱心網友回復:
是自動續費的那種,不知道前端怎么再次獲取token,比如后端續簽token后再把它放入回應頭,前端怎么再次獲取呢?uj5u.com熱心網友回復:
是自動續費的那種,不知道前端怎么再次獲取token,比如后端續簽token后再把它放入回應頭,前端怎么再次獲取呢?
uj5u.com熱心網友回復:
你的前端怎么呼叫后臺的?前端 (請求)--> 后臺(token失效,重繪token)回傳(response)--> 前端(拿到response,保存token)
uj5u.com熱心網友回復:
哦哦,謝謝您,那攔截器怎么知道redis的key呢,是不是登錄時生成好的token,同時把token放入到回應頭和redis中,然后攔截器從請求頭獲取token的值,把這個值當成key再去查redis呢?
uj5u.com熱心網友回復:
請問,比如token過期了,攔截器通過jwt取不出過期時間進行比對,沒法重繪,一取就報錯,不知道怎么辦才好?是不是生成token的時候同時要把時間單獨存到redis中呢,然后當重繪的時候,通過攔截器再從redis把時間取出來和當前時間比對看是否需要重繪呢?
uj5u.com熱心網友回復:
你的jwt里有什么資訊?沒有過期期限嗎?uj5u.com熱心網友回復:
有過期時間啊,但是當token過期了,無論用戶資訊和過期時間都取不出來了,一取直接拋例外,所以我想是不是生成token的時候,同時把時間單獨放在redis中呢uj5u.com熱心網友回復:
token里包含過期時間你就不用保存token在服務端了如果要續期,直接丟cookie里不就行了?
uj5u.com熱心網友回復:
哦哦,我總覺得放cookie不太安全,所以想著放redis里uj5u.com熱心網友回復:
捕捉過期例外,自己用base64解碼token取出相關資訊。最好資訊里有個重繪期限,判斷是否在重繪期限內,是則重繪token,業務處理結束后把token一起回傳給客戶端;不在重繪期限內則引導到登錄頁面。uj5u.com熱心網友回復:
前端 (請求)--> 后臺(token失效,重繪token)回傳(response)--> 前端(拿到response,保存token)那豈不是每次發送請求都要判斷是否過期嗎,還是說前端也有一個攔截器,進行攔截判斷。
uj5u.com熱心網友回復:
那豈不是每次發送請求都要判斷是否過期嗎,還是說前端也有一個攔截器,進行攔截判斷。
uj5u.com熱心網友回復:
可以去我主頁看下我發布的 jwt之token轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/116133.html
標籤:Java EE
上一篇:android開發中,android studio中的專案中。.java的檔案都多出一份.kt的同名檔案,是為什么啊
下一篇:Java汽車類
