基於JWT(Json Web Token)的ASP.NET Web API授權方式


token應用流程

初次登錄:用戶初次登錄,輸入用戶名密碼

密碼驗證:服務器從數據庫取出用戶名和密碼進行驗證

生成JWT:服務器端驗證通過,根據從數據庫返回的信息,以及預設規則,生成JWT

返還JWT:服務器的HTTP RESPONSE中將JWT返還

帶JWT的請求:以后客戶端發起請求,HTTP REQUEST HEADER中的Authorizatio字段都要有值,為JWT

Install-Package JWT

實戰教程

install-package Thinktecture.IdentityModel.Core
install-package Microsoft.Owin.Security.Jwt

 解決錯誤

http://home.bdqn.cn/thread-13632-1-1.html

在IIS中訪問APS頁面時提示:“最可能的原因使用的托管的處理程序,但是未安裝或未完整安裝asp.net“

打開CMD窗口,執行下面的命令:

"%WINDIR%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe" -iru -enable

認證原理

一個不記名 token 包含了三部分:header,payload,signature。

header 是 token 的一部分,用來存放 token 的類型和編碼方式,通常是使用 base-64 編碼。

payload 包含了信息。你可以存放任一種信息,比如用戶信息,產品信息等。它們都是使用 base-64 編碼方式進行存儲。

signature 包括了 header,payload 和密鑰的混合體。

 

代碼實戰

JsonWebToken.Validate(accessToken, ApiAccount.AppSecret, (int)AppSettings.TokenTimeout.TotalSeconds);

 

參考資料

https://www.cnblogs.com/danvic712/p/10331976.html

http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html

http://www.cnblogs.com/grissom007/p/6294746.html

http://www.cnblogs.com/selimsong/p/8184904.html

https://www.cnblogs.com/xz816111/p/9620139.html


免責聲明!

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



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