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

img

我們將討論使用 .NET Core API 6 的 JWT 令牌身份驗證和實現

在查看此博客之前,請訪問我的以下博客,了解 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 內的“授權”選項卡中,如下圖所示

img
img
img
img
img
img
img

所以,這就是 .NET Core 6 Web API 中的 JWT 身份驗證。

我希望您理解這些事情並且現在了解事情是如何運作的。

快樂編碼!

Last updated