.NET CORE API JWT

huynhminhnhut97@gmail.com | 428 day | 939


Hi mọi người, hiện tại em mới nhảy từ Java sang .NET thì thấy .NET thú vị lắm ạ. Em đã nắm được kiến thức để làm API với ASP NET CORE, hiện tại em muốn học cách config JWT vào project của mình nhưng không biết nên xem tài liệu nào cho phù hợp, mọi người có thể gợi ý em một vài tài liệu tutorial hay bài hướng dẫn được không ạ. Thanks all


2 Answers


Chào bạn, 

Bạn có thể tham khảo bài viết này https://www.c-sharp.vn/dot-net-core/dot-net-core-bearer-token-with-jwt-e477ff. Cảm ơn.



Chào bạn, đầu tiên welcome bạn gia nhập gia đình netcore, về configuration trong JWT thì bạn cần lưu ý đến 3 điểm

  1. Issuer ==> là nơi cung cấp cái token, nó cũng có thể được coi như 1 tổ chức cấp giấy chứng nhân.
  2. Audience ==> là những người được sử dụng token đó, mình ví du: CMND của bạn thì chỉ có hiệu lực với chính bạn nếu bạn cho ai đó mượn thì nó sẽ không có hiệu lực
  3. IssuerSigningKey ==> cái này là chữ ký của nhà cung cấp token
  4. Và dưới đây là 1 đoạn configuration về phía nhà cung cấp token
      app.UseMiddleware<TokenProviderMiddleware>(new TokenProviderOptions
                {
                    Issuer = Configuration.Issuer,//1
                    SecurityKey = Configuration.SecurityKey,//2
                    TokenExpiration = TimeSpan.FromMinutes(+tokenExpiration),//3
                });​
  • 1 => Là tên nhà cung cấp, ví dụ "http://c-sharp.vn" hoặc tùy bạn.
  • 2 => còn về chữ ký là 1 cái hash thường thì mình dùng Putty để generate ra nó, hoặc bạn cũng có thể dùng 1 cái guid tùy bạn
  • 3 => thời gian hiệu lực của cái token

Và tiếp theo là đoạn configuration về người sử dụng token

services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;

            }).AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer = true,//1
                    ValidateAudience = true,//2
                    ValidateLifetime = true,//3
                    ValidateIssuerSigningKey = true,//4
                    ValidIssuer = Configuration.Issuer,//5
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration.SecurityKey))//6
                };
            });

Về "Scheme" thì ở đây do mình dùng JWT nên mình set cái "Scheme" về JWT hết

  1. Có cần xác thực nhà cung cấp hay không
  2. Có cần xác thực người có đúng hay không
  3. Có cần kiểm tra token expired hay không
  4. Có cần kiểm tra chữ ký của nhà cung cấp hay không
  5. If 1 bằng true thì nhà cung cấp hợp lệ là ai
  6. If 4 bằng true thì chữ ký hợp lệ là gì

đây là 1 cái LIB mình viếc dành cho jwt==> bạn có thể access vô tham khảo nghen

Guthub

Nuget

 

 






Top Question

Bi lỗi Invalid Column Name khi sử dụng LinQ (.Net)

1135 day
Bảo Dương
Views 1338
Answers 2

Làm thế nào để lấy information từ token (.Net Core)

525 day
ngovu.dl@gmail.com
Views 851
Answers 1

Unit Test In .NET Core (.Net Core)

460 day
phuongnd.tech@gmail.com
Views 434
Answers 1

Top Articles

Bất Đầu Với WebApi Và Dot Net Core (.Net Core)

1276 day
Butter Ngo
Views 8931
Comments 0

Dot Net Core Bearer Token With (JWT) (.Net Core)

1208 day
Butter Ngo
Views 5557
Comments 0

Repository Và Unit Of Work (Entity Framework)

1195 day
ndtung449@gmail.com
Views 5040
Comments 0

Bắt Đầu Với Dot NET Core (.Net Core)

1288 day
Butter Ngo
Views 4424
Comments 0