久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Cookie.Session到Token和JWT

 comeonwyj 2020-10-15

一,、sessioncookie:

現(xiàn)在一般都是sessioncookie一起用,一起提,。但是他們倆其實不是一定要在一起,。

session的產(chǎn)生原因是,http協(xié)議是無狀態(tài)的

這就導(dǎo)致了,,不同的用戶在操作時,,服務(wù)端無法知道是哪個用戶發(fā)來的請求,為了做這種區(qū)分,,服務(wù)器就要給每個客戶端分配不同的“身份標(biāo)識”,,然后客戶端每次向服務(wù)器發(fā)請求的時候,都帶上這個“身份標(biāo)識”,,服務(wù)器就知道這個請求來自于誰了,。至于客戶端怎么保存這個“身份標(biāo)識”,可以有很多種方式,,對于瀏覽器客戶端,,大家都默認(rèn)采用 cookie 的方式

session的使用流程一般為:

1.用戶在客戶端登錄后,服務(wù)器會跟據(jù)用戶信息生成一個sessionID

2.然后會把session存儲在redis,,數(shù)據(jù)庫等存儲媒介中

3.然后通過設(shè)置cookie的方式返回給客戶端,,既存放在瀏覽器的cookie

4.客戶端在下一個請求時,會帶上cookie中的sessionid

5.然后服務(wù)端根據(jù)sessionid去查redis或者數(shù)據(jù)庫,,進行驗證,,來到達用戶校驗的目的

session存在的問題:

1.如果是單一的服務(wù)器,,那么使用session沒有問題,但是如果是集群服務(wù)器的話,,那就要做session同步了,,如果是4-5臺服務(wù)器還是可行的,但是如果集群有上百臺呢,,這樣session同步就會難以接受,,極大的增加了服務(wù)器的性能開銷

2.于是有人就想出,為session獨立部署一個服務(wù)器,,然后其他服務(wù)器訪問這個session服務(wù)來進行存取和驗證邏輯,,這樣就不需要做session同步了,但是這樣也存在風(fēng)險,,萬一這臺服務(wù)器掛了,,那整個系統(tǒng)都會受到牽連。

3.那么為這個session服務(wù)器再擴展,,也做成集群-session集群,,這也是一種可行的方案,但是非常累人

session是服務(wù)器端的,,cookie是瀏覽器端的cookie只是實現(xiàn)session的其中一種方案,。雖然是最常用的,但并不是唯一的方法,。禁用cookie后還有其他方法存儲,,比如放在url中現(xiàn)在后端服務(wù)都是分布式部署,session一般統(tǒng)一放在redis集群中,。這樣有個問題就是一旦redis故障,,可能會影響所有的用戶請求。所以,,在后臺進行session的存儲和運維這件事是非常重要和危險的,,對可靠性的要求非常高。

二,、Token:

為了解決session產(chǎn)生的問題,,所以有了token,token意為“令牌”.

簡單來說,,就是服務(wù)端把用戶信息通過加密算法和一個只有服務(wù)端知道的密鑰,,來生成一個字符串,這個就是token.

然后客戶端下一次請求時帶上這個token,服務(wù)端拿到用戶信息后通過相同的算法和密鑰,,生成一個新的token和用戶請求里攜帶的token進行比對,,來完成用戶驗證。

token的流程一般是這樣的:

1.客戶端使用用戶名跟密碼請求登錄,,

2.驗證成功后,,服務(wù)端會通過加密算法,,如HMAC-SHA256,然后通過一個只有服務(wù)端知道的密鑰,,來生成一個token

3.服務(wù)端再把這個Token發(fā)送給客戶端,,服務(wù)端不會保存token

4.客戶端收到 Token 以后可以把它存儲起來,,比如放在 Cookie 里或者 Local Storage 里

5.客戶端每次向服務(wù)端請求資源的時候需要帶著服務(wù)端簽發(fā)的 Token

6.服務(wù)端收到請求,,然后會用相同的算法和密鑰去驗證token,如果通過,,執(zhí)行業(yè)務(wù)操作,,不通過,返回不通過信息

session時通過把所有session存起來,,而token則是通過算法和密鑰來驗證,。這樣的話就解決了session的問題,服務(wù)端不需要在存儲任何信息了,, 擴展起來就更方便,。

三、JWT

JWT意為JSON Web Token ,,可以理解成是一種特殊的token,,也可以理解成是根據(jù)token的思路發(fā)展出來的一種具體的解決方案

Jwt原理和實現(xiàn):https://www.cnblogs.com/zhangyafei/p/12855294.html

JWT 的幾個特點
JWT 默認(rèn)是不加密,但也是可以加密的,。生成原始 Token 以后,,可以用密鑰再加密一次。
JWT 不加密的情況下,,不能將秘密數(shù)據(jù)寫入 JWT,。
JWT 不僅可以用于認(rèn)證,也可以用于交換信息,。有效使用 JWT,,可以降低服務(wù)器查詢數(shù)據(jù)庫的次數(shù)。
JWT 的最大缺點是,,由于服務(wù)器不保存 session 狀態(tài),,因此無法在使用過程中廢止某個 token,或者更改 token 的權(quán)限,。也就是說,,一旦 JWT 簽發(fā)了,在到期之前就會始終有效,,除非服務(wù)器部署額外的邏輯,。
JWT 本身包含了認(rèn)證信息,一旦泄露,,任何人都可以獲得該令牌的所有權(quán)限,。為了減少盜用,,JWT 的有效期應(yīng)該設(shè)置得比較短。對于一些比較重要的權(quán)限,,使用時應(yīng)該再次對用戶進行認(rèn)證,。
為了減少盜用,JWT 不應(yīng)該使用 HTTP 協(xié)議明碼傳輸,,要使用 HTTPS 協(xié)議傳輸,。

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多