Junior — Middle
Can you explain what JWT is and how it is used in ASP.NET applications?
sobes.tech AI
Answer from AI
JWT (JSON Web Token) is a compact, URL-safe way to transmit information between parties as a JSON object. In ASP.NET applications, JWT is often used for user authentication and authorization.
Working principle:
- When a user logs in, the server creates a JWT containing useful data (e.g., user ID, roles) and signs it with a secret key.
- The client stores this token and sends it in the Authorization header for subsequent requests.
- The server verifies the token's signature, extracts the data, and makes access decisions based on it.
Example of JWT configuration in 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"))
};
});
Thus, JWT allows secure and convenient session management without server-side state storage.