Sobes.tech
Junior — Middle

Կարող եք բացատրել, թե ինչ է JWT-ն և ինչպես է այն օգտագործվում ASP.NET հավելվածներում?

sobes.tech AI

Պատասխան AI-ից

JWT (JSON Web Token) — բարդ և URL-անվտանգ միջոց է տեղեկատվության փոխանցման համար կողմերի միջև JSON օբյեկտի տեսքով։ ASP.NET հավելվածներում JWT հաճախ օգտագործվում է օգտվողների նույնականացման և թույլտվության համար։

Աշխատանքի սկզբունքը՝

  • Օգտվողի մուտքի ժամանակ, սերվերը ստեղծում է JWT, որը պարունակում է օգտակար տվյալներ (օրինակ՝ օգտվողի նույնականացման համար, դերեր) և ստորագրում է գաղտնի բանալիով։
  • Клиենտը պահում է այս նշանը և ուղարկում է այն Authorization գլխում հաջորդ հարցումների ժամանակ։
  • Սերվերը ստուգում է նշանի ստորագրությունը, հանում է տվյալները և որոշում է մուտքի իրավունքները դրանց հիման վրա։

ASP.NET Core-ում JWT կոնֆիգուրացիայի օրինակ՝

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-ը ապահով և հարմար է սեսիաները կառավարելու համար՝ առանց սերվերում վիճակի պահպանում։