Sobes.tech
Junior — Middle

Можете ли да обясните какво е JWT и как се използва в ASP.NET приложения?

sobes.tech AI

Отговор от AI

JWT (JSON Web Token) е компактен и безопасен начин за предаване на информация между страни под формата на JSON обект. В ASP.NET приложенията JWT често се използва за удостоверяване и авторизация на потребители.

Принцип на работа:

  • При вход, сървърът създава JWT, съдържащ полезни данни (например, идентификатор на потребителя, роли) и го подписва с тайна ключ.
  • Клиентът запазва този токен и го изпраща в заглавката Authorization при следващи заявки.
  • Сървърът проверява подписа на токена, извлича данните и взема решение за достъп въз основа на тях.

Пример за конфигурация на JWT в ASP.NET Core:

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 = "yourIssuer",
        ValidAudience = "yourAudience",
        IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("yourSecretKey"))
    };
});

По този начин JWT позволява сигурно и удобно управление на сесиите без съхраняване на състояние на сървъра.