ASP.NET Core 6 Web API 進行 JWT 令牌身份驗證

我們將討論使用 .NET Core API 6 的 JWT 令牌身份驗證和實現
在查看此博客之前,請訪問我的以下博客,了解 JWT 令牌身份驗證和授權的基礎知識和詳細信息,以及如何使用 JWT 進行工作。
讓我們開始.NET Core 6 Web API的實現,
步驟1:
建立 .NET Core 6 Web API 應用程式
第2步:
安裝我們將在整個應用程式中使用的以下 NuGet 套件。
Microsoft.AspNetCore.Authentication.JwtBearer
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Newtonsoft.Json
StackExchange.Redis
Swashbuckle.AspNetCore
步驟3:
接下來,在解決方案中建立新資料夾 Models 並在其中建立一個 Product 類別。
步驟4:
在Data資料夾內建立一個DbContextClass用於資料庫操作。
第5步:
稍後,在 Controllers 資料夾中建立 ProductController。
第6步:
現在,我們將在該應用程式中使用 Redis 緩存。如果您了解分佈式 Redis 緩存的工作原理,請看以下文章
.NET Core Web API 中 Redis 緩存的實現
第7步:
在解決方案中建立 Cache 資料夾,並為 Redis 和 Connection Helper 建立一些類。因此,首先,為Redis緩存建立ICacheService和CacheService。
接下來,為 Redis 緩存相關功能建立 CacheService 類別。
步驟8:
建立 ConfigurationManager 類,用於配置 appsetting.json 文件
第9步:
接下來,在緩存資料夾內建立 ConnectionHelper 類以取得 RedisURL 並將其配置到應用程式中。
第10步:
現在,我們將為 JWT 身份驗證部分建立 Login 和 JWTTokenResponse 類別
另外,為令牌建立 JWTTokenResponse 類
第11步:
稍後,在控制器中建立 AuthenticationController 以進行用戶身份驗證。
我們從用戶那裡取得用戶名和密碼,然後取得我們放入 appsettings.json 文件中的密鑰
接下來,使用 HMAC SHA256 加密算法的密鑰建立編碼字符串的簽名憑據。
後來,我們在建立令牌時增加了一些屬性,例如簽名憑據、過期時間、發行者、受眾以及根據我們的需要和要求的不同類型的聲明。
最後,使用令牌處理程式建立令牌,並將其以編碼形式發送給最終用戶。
步驟12:
在 appsetting.json 文件中增加一些環境變數
步驟13:
接下來,在 Program 類中註冊與 JWT 身份驗證、用於身份驗證的 Swagger UI、CORS 策略和緩存服務相關的所有服務器,如下所示
第14步:
最後,在「套件管理主控台」中執行以下命令進行資料庫更新。
第15步:
運行應用程式並在提供憑據後建立令牌,並將其放入 swagger UI 內的“授權”選項卡中,如下圖所示







所以,這就是 .NET Core 6 Web API 中的 JWT 身份驗證。
我希望您理解這些事情並且現在了解事情是如何運作的。
快樂編碼!
Last updated