摘要:而且這樣做的話,會存在多個令牌同時有效,可能會引起一些安全問題。這種做法也是很多人采用的一種。對于續期的話,個人覺得第二種方案是比較好的一種方案。而退出的話,如果不考慮泄露的問題,那么第一種方案是比較好的一種方案。這些都是自己對的一些理解。
在使用jwt的過程中發現了兩個問題續期和退出的問題。續期
因為jwt的token在簽發之后是有過期時間的,所以就存在管理這個過期時間的問題。我看網上有提出解決方案的大致有下面幾個
每次更新過期時間,跟session一樣,每次請求的時候都會去更新下token過期時間.但是對于jwt來說,更新過期時間就意味著jwt的token會變,那么前端就需要每個請求都去保存一次新的token。這樣使得前端的工作變的復雜起來。而且這樣做的話,會存在多個令牌同時有效,可能會引起一些安全問題。
還有一個就是每隔一段時間去更新一次token。這種做法也是很多人采用的一種。比如:token過期時間是一個小時。預設每五十五分鐘去更新token。這種模式也是需要前端去配合完成的。
退出因為token在簽發之后在一段時間內是一直有效的,那么這種情況,我們怎么去管理登出呢?
簡單的方式就是客戶端直接刪除token。但是這樣的話,如果token泄露了也是不安全的。
有人提出退出的時候將token存放在redis中,過期時間設置為跟token的時候一樣。當用戶在次用舊的token訪問的時候,如果發現redis中存在token,那么提示token過期。
對于續期的話,個人覺得第二種方案是比較好的一種方案。而退出的話,如果不考慮泄露的問題,那么第一種方案是比較好的一種方案。但是如果做SSO的話可能第二種方案是比較好的一種,但是在用到了redis之后就違背了jwt的設計初衷,需要與數據庫交互。
其實個人覺得,jwt的加密方式結合redis這種也是可以采用的。畢竟這些都是為了解決問題。當利用到redis之后,我們就可以將jwt擴展下。在payload部分加載一個生成的refresh token ,這個refresh token也是有過期時間的,我們需要將這個refresh token存放在redis中。這樣的話,我們就可以把jwt的過期時間放在這個refresh token中維護。續期也就是維護這個refresh token的過期時間,退出的話 也就是刪除這個refresh token就可以了。
其實這樣的話就跟傳統的token驗證一樣了,也就是外層加了一個jwt的驗證。
可能是我對于這方面了解的比較少,不能想到什么有效的方案。這些都是自己對jwt的一些理解。如果哪位大佬有更好的方案,希望賜教。感謝
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29510.html
摘要:什么是是一個開放的數據交換驗證標準,一般用來做輕量級的鑒權。由于許多接口設計是遵循無狀態的比如,所以是這一套機制的替代方案。組成由三部分組成頭部載荷簽名。 什么是JWT? JWT(Json Web Token)是一個開放的數據交換驗證標準rfc7519(https://tools.ietf.org/html/r...,一般用來做輕量級的API鑒權。由于許多API接口設計是遵循無狀態的(...
摘要:到這里,基于的前后端分離實現方案就搞定啦四關于的一些思考實際上,在使用的過程中有一個比較致命的缺點,就是一旦簽發了,在到期之前就會始終有效,除非服務器部署額外的邏輯。結語以上是關于基于的前后端分離實現方案的總結和思考。 一、jwt是什么 JWT全稱, JSON Web Token,是一個以JSON為基準的標準規范。 舉例:服務器認證以后,生成一個 JSON 對象,發回給用戶,就像下...
摘要:框架具有輕便,開源的優點,所以本譯見構建用戶管理微服務五使用令牌和來實現身份驗證往期譯見系列文章在賬號分享中持續連載,敬請查看在往期譯見系列的文章中,我們已經建立了業務邏輯數據訪問層和前端控制器但是忽略了對身份進行驗證。 重拾后端之Spring Boot(四):使用JWT和Spring Security保護REST API 重拾后端之Spring Boot(一):REST API的搭建...
摘要:創建應用有很多方法去創建項目,官方也推薦用在線項目創建工具可以方便選擇你要用的組件,命令行工具當然也可以。對于開發人員最大的好處在于可以對應用進行自動配置。 使用JWT保護你的Spring Boot應用 - Spring Security實戰 作者 freewolf 原創文章轉載請標明出處 關鍵詞 Spring Boot、OAuth 2.0、JWT、Spring Security、SS...
摘要:為用戶提供授權以允許用戶操作非公開資源,有很多種方式。具體的代碼根據不同的授權方案而有所不同。使用授權原理利用來驗證用戶,有兩種機制實現。使用來實現用戶授權主要用于簽發如果有將異步的簽名。 ? 在很多應用中,我們都需要向服務端提供自己的身份憑證來獲得訪問一些非公開資源的授權。比如在一個博客平臺,我們要修改自己的博客,那么服務端要求我們能夠證明 我是我 ,才會允許我們修改自己的...
閱讀 1480·2021-11-17 09:33
閱讀 1260·2021-10-11 10:59
閱讀 2892·2021-09-30 09:48
閱讀 1904·2021-09-30 09:47
閱讀 3024·2019-08-30 15:55
閱讀 2336·2019-08-30 15:54
閱讀 1492·2019-08-29 15:25
閱讀 1645·2019-08-29 10:57