.net core 之Claim


 

假設有這樣一家動物園,這家動物園要門票,門票要從動物園門口的售票室買,購買后,能得到一張紙質的票據。紙很特殊,動物園驗票能通過紙張來判斷門票是不是真的,還能看出你有沒有塗改門票。門票上還有時間,指示什么時候門票到期,只要門票沒有到期,你就可以隨意進出動物園

嗯,這么長個例子,其實和Claim沒什么關系 :)

門票上有什么?我們來假設一下

門票上有,姓名,票價,性別,地址,【等等身份證一類的東東】

好了,我們假設的門票就這樣,從門票的第二行(姓名...)開始,每一行都是一個Claim

有了上面的鋪墊,我們接下來正式介紹下Claim

釋義

Claim 本意有

  • vt.聲稱;索取;斷言;需要
  • vi.提出要求
  • n.索賠;聲稱;(根據權利而提出的)要求;斷言

斷言是比較准確的釋義,另外可以理解成聲明,每一條claim 都代表了一條票據的信息,比如示例票據上的姓名等等。claim 的基本組成是 typevalue,上面票據中左側的就是type右面就是value

在 .net core 基礎類庫中是含有Claim的實現類的,它的位置是

System.Security.Claims.Claim 

我們看一個真是的claim的例子

{
  "sub": "1234567890", "name": "John Doe", "iat": 1516239022 } 

這個例子中含有3個claim

  • sub subject 主題,往往指Id
  • name 就是name
  • iat issue at 發出時間

這個例子中的 type 都是 JWT RFC中的標准jwt claim,上面這個例子是一個jwt票據的一部分,而在identity 中,默認使用的是cookie 身份認證,所以使用的不是 jwt 票據,而是加密cookie票據(identity沒有這樣定義,這樣寫是為了和jwt票據區分開),但是票據里面的內容,jwt和 加密cookie都是一樣的都是——“claim

再回顧下 claim是什么? 就是一條一條的 type-value 鍵值對,里面存儲了身份證明信息

而承載claim的東西就是票據,票據有很多種 jwt 和cookie 都是主流,不過應用場景不一樣,by the way 票據的英文名稱是“token” ,你需要記住它,后續的文章中,我們會學習如何同時使用支持移動后端驗證(jwt token)以及僅僅使用 jwt token


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM