آموزش JWT توسط Minimal Api در Asp.net Core 6
سلام لطفا راهنمایی کنید برای احراز هویت توسط JWT با Minimal Api ها در Asp.net core 6 باید چه کاری انجام بدم؟ آیا آموزشی در این رابطه وجود داره ؟
پاسخ هوش مصنوعی
برای پیاده سازی احراز هویت با JWT در ASP.NET Core 6 با استفاده از Minimal APIs، مراحل زیر را دنبال کنید:
1. **نصب بسته های مربوطه**: اول از همه بسته های زیر را نصب کنید:
dotnet add package Microsoft.AspNetCore.Authentication.JwtBearer
dotnet add package System.IdentityModel.Tokens.Jwt
2. **ایجاد مدل کاربر**: یک مدل کاربر (User) بسازید که شامل اطلاعات کاربر باشد.
public class User
{
public string Username { get; set; }
public string Password { get; set; }
}
3. **پیکربندی خدمات احراز هویت در برنامه**: در فایل Program.cs پیکربندی JWT را اضافه کنید.
var builder = WebApplication.CreateBuilder(args);
// Add JWT Authentication
builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = "your_issuer",
ValidAudience = "your_audience",
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("your_secret_key"))
};
});
var app = builder.Build();
app.UseAuthentication();
app.UseAuthorization();
4. **ایجاد Endpoint برای ورود به سیستم**: یک Endpoint برای ورود به سیستم و صدور توکن JWT ایجاد کنید.
app.MapPost("/login", async (User user) =>
{
// اعتبارسنجی کاربر (این قسمت باید با پایگاه داده واقعی یا منبع داده های شما جایگزین شود)
if (user.Username == "test" && user.Password == "password") // اینجا باید اعتبارسنجی واقعی انجام شود
{
var claims = new[]
{
new Claim(ClaimTypes.Name, user.Username)
};
var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("your_secret_key"));
var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);
var token = new JwtSecurityToken(
issuer: "your_issuer",
audience: "your_audience",
claims: claims,
expires: DateTime.Now.AddMinutes(30),
signingCredentials: credentials);
return Results.Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token) });
}
return Results.Unauthorized();
});
5. **تست احراز هویت**: پس از دریافت توکن، می توانید آن را برای احراز هویت در درخواست های دیگر به کار ببرید. برای این کار از [Authorize] استفاده کنید:
app.MapGet("/secure-endpoint", [Authorize] () =>
{
return "این یک نقطه امن است";
});
6. **اجرا و تست**: برنامه را اجرا کنید و از ابزارهایی مانند Postman برای تست ورود و بررسی Endpoint امن استفاده کنید.
این مراحل یک راهنمای کلی برای پیاده سازی JWT با استفاده از Minimal APIs در ASP.NET Core 6 است. توصیه می شود که از پایگاه داده برای اعتبار سنجی کاربر و ذخیره سازی اطلاعات استفاده کنید.
احراز هویت توسط JWT در Minimal Api ها تقریبا مشابه با احراز هویت در Web Api های معمولی هست. البته تفاوت هایی هم هست ولی زیاد نیست.
برای این منظور میتونید دوره های آموزشی رایگان زیر رو شرکت کنید.
- آموزش نصب و راه اندازی دیتابیس PostgreSQL در ویندوز
- PostgreSql چیست ؟ چه کاربردهایی دارد ؟
- دسترسی به پکیج های nuget در زمان قطع نت بین الملل
- نمایش آخرین ردیف دیتاگیرید موقع لود در wpf
- مشکل اینترنت جهانی و عدم دسترسی به cdnjs.cloudflare.com
- مشکل در نصب sql server 2022
- جلوگیری از اد شدن خودکار در گروه و کانال تلگرام
- کم کردن حجم فیلم توسط کد در Asp net core
- چه کسانی استوری تلگرام را می بینند ؟
- برای کسب و کار تلگرام پرمیوم بهتره یا واتس اپ بیزینس ؟
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2