色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

用jwt還是用redis和token

阮建安2年前58瀏覽0評論
用jwt還是用redis和token?

就個人的理解而言,各自有其優缺點,并且針對不同的場景需要進行約束性開發。

Token機制簡述

Token的用途

用戶在登錄APP時,APP端會發送加密的用戶名和密碼到服務器,服務器驗證用戶名和密碼,如果驗證成功,就會生成相應位數的字符產作為token存儲到服務器中,并且將該token返回給APP端。

以后APP再次請求時,凡是需要驗證的地方都要帶上該token,然后服務器端驗證token,成功返回所需要的結果,失敗返回錯誤信息,讓用戶重新登錄。其中,服務器上會給token設置一個有效期,每次APP請求的時候都驗證token和有效期。

token+redis機制

token + redis機制是中心化的,每次驗證token有效性時,都需要訪問redis,其核心優點實服務端可以主動讓token失效,缺點是每次都要進行redis查詢。占用redis存儲空間。

jwt機制

這是一種無狀態身份驗證機制,因為用戶狀態永遠不會保存在服務器內存中。服務器受保護的路由將在授權頭中檢查有效的JWT,如果存在,則允許用戶訪問受保護的資源。由于JWT是獨立的,所有必要的信息都在那里,減少了多次查詢數據庫的需求。

用戶發起登錄請求,驗證通過后,服務端創建一個加密后的JWT信息,作為Token返回。在后續請求中JWT信息作為請求頭,發給服務端。服務端拿到JWT之后進行解密,正確解密表示此次請求合法,驗證通過;解密失敗說明Token無效或者已過期。

jwt的優點主要有:

1.t是去中心化的,便于分布式系統使用;

2. 基本信息可以直接放在token中。user_id,session_id;

3. 功能權限信息可以直接放在token中。用bit位表示用戶所具有的功能權限。其缺點有:服務端無法主動讓token失效,另一個是無法很好地控制payload的數據量。

小結

jwt和token+redis兩種方案,沒有最優,只有結合不同的業務場景,尋求最適合的方案。