دسته بندی ها
14:35 1401/06/25

آموزش JWT توسط Minimal Api در Asp.net Core 6

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 518     رتبه کاربر : 4
دسته بندی : Asp.net Core Minimal Api

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2003
هوش مصنوعی

پاسخ هوش مصنوعی

برای پیاده سازی احراز هویت با 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 است. توصیه می شود که از پایگاه داده برای اعتبار سنجی کاربر و ذخیره سازی اطلاعات استفاده کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : saedbfd 15:59 1401/07/01

احراز هویت توسط JWT در Minimal Api ها تقریبا مشابه با احراز هویت در Web Api های معمولی هست. البته تفاوت هایی هم هست ولی زیاد نیست.

برای این منظور میتونید دوره های آموزشی رایگان زیر رو شرکت کنید.

دوره آموزشی کار با Minimal Api ها در Core 6

دوره آموزشی احراز هویت توسط JWT در Asp.net Core

به این پاسخ امتیاز بدهید    0
امتیاز: 1664 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود