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