Identity Server4學習系列二之令牌(Token)的概念

一、簡介html

經過前文知道了Identity Server4的基本用途,如今必須瞭解一些實現它的基本細節.算法

 

二、關於服務端生成Token令牌服務器

頭部(Header):負載均衡

{ 
「typ」: 「JWT」, //token的類型
「alg」: 「HS256」 //Token使用的加密算法
} 

將頭部使用Base64編碼可獲得以下個格式的字符串:ui

eyJhss6iOaaJIUasddasd

有效載荷(用戶信息等關鍵信息):編碼

{ 
「iss」: 「Online JWT Builder」, //token的簽發者
「iat」: 666666, //簽發時間
「exp」: 66666, //過時時間
……. 
「userid」:10001 //用戶Id
//下面能夠繼續編寫用戶信息,但不能存放敏感信息 }

有效載荷也使用Base64編碼獲得以下格式的字符串:加密

eyJhss6iOaaJIUasddasd

接着將Header和Playload拼接生成一個字符串「eyJhss6iOaaJIUasddasdeyJhss6iOaaJIUasddasd」,使用HS256算法對該字符串進行加密,獲得的字符串在經過咱們提供的密鑰(secret,服務器本身提供的一個字符串)對字符串進行證書籤名字符串,最終獲得一個包含頭部信息(Base64字符串)和有效載荷(用戶信息等Base64字符串)和一個進行層層加密的簽名字符串組成的一個JWTtokenspa

 

三、關於服務端如何解密令牌code

當用戶登錄成功後,繼續訪問頁面,那麼會帶上這個token,服務端拿到token以後,對頭部信息和有效載荷在進行一次HS256算法和使用當前用戶對應的密鑰進行一次簽名,判斷這個簽名是否和token中的簽名是否一致,就能夠判斷這個token是否有效.由於密鑰存在咱們服務器上,別人不可能能僞造.htm

 

四、Token的優勢

不用保存在服務器,Session須要保存在服務器,並且Session不能跨服務器,只能保存在一臺服務器上,因此當用戶登錄了這個站點,那麼作了負載均衡後,下次訪問必須仍是訪問這個站點,因此可擴展性強比較靈活.

相關文章
相關標籤/搜索