Как устранить ошибку «401 неавторизованно» при создании токена JWT в ASP.NET?C#

Место общения программистов C#
Ответить
Anonymous
 Как устранить ошибку «401 неавторизованно» при создании токена JWT в ASP.NET?

Сообщение Anonymous »

Я пытаюсь создать токен JWT в своем API ASP.NET, используя следующий код в файле Program.cs:

Код: Выделить всё

var key = Encoding.ASCII.GetBytes(Settings.Secret);
builder.Services.AddAuthentication(x =>
{
x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(x =>
{
x.RequireHttpsMetadata = false;
x.SaveToken = true;
x.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(key),
ValidateIssuer = false,
ValidateAudience = false
};
});
app.UseAuthorization();
app.UseAuthentication();
Затем я использую следующий код для создания токена:

Код: Выделить всё

namespace DeliveryAPI.Services
{
public class TokenService
{
public static string GenerateToken(EstablishmentLoginDTO request)
{
if (request == null)
{
throw new ArgumentNullException(nameof(request));
}

var key = Encoding.ASCII.GetBytes(Settings.Secret);
var tokenConfig = new SecurityTokenDescriptor
{
Subject = new System.Security.Claims.ClaimsIdentity(new Claim[]
{
new Claim("email", request.Email.ToString())
}),
Expires = DateTime.UtcNow.AddHours(2),
SigningCredentials = new SigningCredentials(
new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256)
};

var tokenHandler = new JwtSecurityTokenHandler();
var token = tokenHandler.CreateToken(tokenConfig);
var tokenString = tokenHandler.WriteToken(token);

return tokenString;
}
}
}

Затем я использую сгенерированный токен в заголовке «Авторизация» своих запросов, но всегда получаю ошибку «401 неавторизовано». Я использую ASP.NET 7.
Во внешнем интерфейсе я использую токен в заголовке запроса следующим образом:

Код: Выделить всё

"Authorization": `Bearer ${token}`
И та же проблема с почтальоном, использующим мой токен JWT.
Что может быть причиной этой ошибки и как ее устранить?

Подробнее здесь: https://stackoverflow.com/questions/760 ... t-token-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»