成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊NET之JWT理解

開發(fā) 后端
jwt是一個基于json的、用于在網(wǎng)絡上聲明某種主張的令牌,jwt通常是用三部分組成:頭信息,消息體,簽名。他是一種雙方之間傳遞安全信息的表述性聲明規(guī)范。主要用于集群分布式中。

[[410562]]

開篇語

本文內容參考多位大佬的文章編寫而成。

介紹

jwt是一個基于json的、用于在網(wǎng)絡上聲明某種主張的令牌,jwt通常是用三部分組成:頭信息,消息體,簽名。他是一種雙方之間傳遞安全信息的表述性聲明規(guī)范。主要用于集群分布式中。

作用:可以做權限驗證的使用,是一種標準化的數(shù)據(jù)傳輸規(guī)范,但是目的不是為了數(shù)據(jù)加密和保護。

使用場景

  • 授權:用于授權而并非是身份驗證。通過身份驗證,我們驗證用戶的用戶名和密碼是否有效,并將用戶登錄到系統(tǒng)中,通過授權,我們可以驗證發(fā)送到服務器的請求是否屬于通過身份驗證登錄的用戶,從而可以授予該用戶訪問系統(tǒng)的權限,繼而批準該用戶使用獲取的token訪問路由、服務和資源。
  •  
  • 信息交換:json web token是在雙方之間安全地傳輸信息的一種好方法。因為jwt可以被簽名,所以使您能夠確保發(fā)送方是他們聲稱的那一方,由于簽名使用header和payload計算的,因此還使您能驗證發(fā)送的內容沒有被篡改。

對比token+redis

JWT就是Json Web Token,就是Token的典型方式。JWT和Token+Redis的區(qū)別,其實都是Token,只是JWT的可靠性保障是來源于加密算法(對稱加密和非對稱兩種),而Token+Redis的方案是依靠的后臺數(shù)據(jù)存儲。這兩個本質也就帶來了使用上的區(qū)別:

1 JWT是去中心化的,不需要任何后臺數(shù)據(jù)的共享,第三方認證、跨數(shù)據(jù)中心認證、微服務等,都適合采用JWT的方式,當然,因為是去中心化的,不是實時驗證,所以本質上來說token的主動過期是做不到的(要做到就會違背初衷)

2 Token+Redis是中心化的,要能識別token必須能訪問該Redis,除非是有特別需求,要求每次token都實時檢測,否則的話還是選擇JWT,畢竟是成熟通用的技術,溝通維護成本也低,對開發(fā)者也友好一些。

這點我忘記是摘錄哪個大佬的文章了,所以沒有給出引用地址很抱歉。

流程

用戶通過登錄去向服務系統(tǒng)發(fā)起請求,然后生成帶一定用戶信息的數(shù)據(jù)作為令牌(jwt)返回給用戶,用戶拿到返回過來的信息在請求接口的時候放入頭部,服務系統(tǒng)會從頭部獲取到令牌后驗證簽名的有效性,對客戶端做出相應的響應。

 

  1. Authorization: Bearer <token> 

如果想在接口中獲取jwt令牌,可以使用

  1. var tokenHeader = HttpContext.Request.Headers["Authorization"].ToString().Replace("Bearer """); 

現(xiàn)在感覺作用就是可以通過jwt實現(xiàn)權限,在系統(tǒng)中定義好有哪些權限,然后在方法頭部去設置哪些角色可以去訪問這個東西。如果存放token,我的想法是把用戶的信息放到jwt內部,然后前端通過登錄去獲取這東西,然后我返回這個東西到前臺,每次調用接口時候把這個東西傳出過來,然后我通過將這個解密獲取到我登錄時候存進去的信息。然后進行我自己的操作。

注意:

生成jwt時候的key必須在16位以上,否則會因為長度不夠拋出異常

jwt本身是不加密的,里面包含的信息任何人都可以讀取到。

jwt的簽名部分是對前兩部分的簽名,防止數(shù)據(jù)被篡改,

Bearer認證

Bearer認證(也叫做令牌認證)是一種HTTP認證方案,其中包含的安全令牌的叫做Bearer Token。因此Bearer認證的核心是Token。那如何確保Token的安全是重中之重。一種方式是使用Https,另一種方式就是對Token進行加密簽名。而JWT就是一種比較流行的Token編碼方式。

驗證

  1. //全局增加配置 
  2. services.AddControllers((options) => 
  3.     options.Filters.Add(new AuthorizeFilter());//添加全局的Authorize 
  4. }); 
  5.  
  6.  
  7. //控制器或者方法增加配置 
  8. [Authorize] 

原理

  • 獲取token
  • 第一步:對token進行切割
  • 第二步:對第二段解碼,獲取payload,檢測token是否超時
  • 第三步:把前兩段拼接再次執(zhí)行HS256加密,把加密后的密文和第三段比較。如果相等,認證通過

參考文檔

曉晨:https://www.cnblogs.com/stulzq/p/7417548.html

 

老張的哲學:https://www.cnblogs.com/laozhang-is-phi/category/1413402.html

 

責任編輯:武曉燕 來源: 鵬祥
相關推薦

2021-06-08 09:28:12

.Net通知服務

2021-02-07 09:05:56

微服務結構云原生

2023-08-09 09:11:57

算法分發(fā)效果

2025-02-20 08:18:12

JWTWeb分布式

2025-05-21 09:51:11

.NETJWTWeb

2021-07-14 06:45:49

Windows.NetTopshelf

2024-01-22 10:18:32

平臺工程開發(fā)人員技術

2024-09-09 07:37:51

AspJWT權限

2022-12-28 08:16:16

metric聚合java

2025-04-01 12:00:00

gRPC分布式系微服務

2023-07-12 13:08:58

性能測試數(shù)據(jù)

2024-03-11 10:21:53

.NET9調用FCall

2021-03-02 06:00:05

Docker.NET 5 Dockerfile

2021-01-27 05:28:38

工具RestSharpHTTP

2021-02-19 06:54:33

配置系統(tǒng)ASP.NET Cor

2024-10-08 10:11:57

2022-01-10 11:28:55

數(shù)據(jù)結構算法DP入門

2020-05-27 08:05:33

MybatisMapper接口

2025-03-07 00:11:00

JWTJSONSession

2021-05-19 08:04:11

ASP.Net服務性原則
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文视频在线 | 九九久久精品 | 精品一区在线看 | 亚洲成人国产精品 | 成人精品国产免费网站 | 久久精品天堂 | 久久久www| 综合久久久 | 欧美日韩国产一区二区三区 | 国产色婷婷久久99精品91 | 久久av一区| 永久av| 日本成人免费网站 | 久久av一区| 伊人久久大香线 | 国产一区91精品张津瑜 | www.日韩高清| 刘亦菲国产毛片bd | 夜久久 | 91免费电影| 免费午夜视频 | 国产精品成人一区二区三区 | 古装人性做爰av网站 | 亚洲成人免费视频在线观看 | 国产一级视频在线观看 | 国产精品一区二区三区久久 | 国产精品入口久久 | 99亚洲综合 | 一区二区三区视频在线 | www.精品国产 | 亚洲一二三区在线观看 | 国产日韩精品一区二区三区 | 亚洲国产一区二区三区在线观看 | 午夜视频在线免费观看 | 国产精品国产三级国产aⅴ原创 | 男人天堂网av | 最新免费av网站 | 久久人体视频 | 情侣酒店偷拍一区二区在线播放 | 日本精品久久 | 国产乱一区二区三区视频 |