.NET8 ASP.NET Core Web API: ошибка JWT: ошибка носителя = «invalid_token»C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 .NET8 ASP.NET Core Web API: ошибка JWT: ошибка носителя = «invalid_token»

Сообщение Anonymous »

Я работаю над проектом веб-API ASP.NET Core 8, в котором мне нужно использовать токены JWT. Но я сталкиваюсь с ошибкой - что бы я ни делал. Я могу генерировать токены при входе в систему, но когда я пытаюсь использовать сгенерированный токен для вызова моего контроллера погоды, я получаю сообщение об ошибке

Носитель error="invalid_token - 401 неавторизовано

Я искал везде, старался изо всех сил понять, в чем проблема..
Это мой контроллер, в котором я генерирую токены:
Первоначально сгенерированный JWT
Ошибка Postman при запросе HttpGet

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

[Route("[controller]")]
[ApiController]
public class AuthController : ControllerBase
{
[HttpPost("login")]
public async Task signIn(UserCred userDetails)
{
if (userDetails != null && userDetails.PhoneNumber != null && userDetails.Pin!= null)
{
UserDetails user = _user.GetUser(userDetails.PhoneNumber, userDetails.Pin);

if (user != null)
{
var claims = new[]
{
new Claim(JwtRegisteredClaimNames.Sub, _config["Jwt:Subject"]),
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
new Claim(JwtRegisteredClaimNames.Iat, DateTime.UtcNow.ToString()),
new Claim("UserId", user.Id),
new Claim("DisplayName", user.FirstName),
new Claim("UserName", user.LastName),
new Claim("Email", user.Email)
};

var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"]));
var signIn = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var token = new JwtSecurityToken(_config["Jwt:Issuer"],
_config["Jwt:Audience"],
claims,
expires: DateTime.UtcNow.AddMinutes(10),
signingCredentials: signIn);

return Ok(new JwtSecurityTokenHandler().WriteToken(token));
}
else
{
return BadRequest("Invalid credentials");
}
}
else
{
return BadRequest();
}
}
}
А вот program.cs для справки:

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

var builder = WebApplication.CreateBuilder(args);
var MyAllowSpecificOrigins = "_specificOrigin";
// Add services to the container.

builder.Services.AddCors(options =>
{
options.AddPolicy(name: MyAllowSpecificOrigins, policy =>
{
policy.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader();
});
});

builder.Services.AddControllers();
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
{
options.RequireHttpsMetadata = false;
options.SaveToken = true;
options.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = true,
ValidateAudience = true,
ValidAudience = builder.Configuration["Jwt:Audience"],
ValidIssuer = builder.Configuration["Jwt:Issuer"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"]))
};
});

builder.Services.AddAuthorization();

// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

builder.Services.AddDbContext(options => options.UseSqlServer(
builder.Configuration.GetConnectionString("DefaultConnection")

));

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}

app.UseHttpsRedirection();
app.UseAuthentication();
app.UseAuthorization();

app.MapControllers();

app.Run();
Сгенерированный токен работает нормально, когда я тестирую на веб-сайтах отладчика JWT, но не работает с моим API
Результат отладчика JWT
Я действительно застрял здесь. Позвольте мне поделиться репозиторием проекта на GitHub для справки: TechBuzzersBank API
Я думаю, что ошибка где-то в моем контроллере, но я не могу ее исправить. Может быть, дело в том, как я вызываю API (в почтальоне)?

Подробнее здесь: https://stackoverflow.com/questions/784 ... alid-token
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Token Postman JWT Token возвращает 401, несанкционированный в ASP.net Core Web API
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Token Postman JWT Token возвращает 401, несанкционированный в ASP.net Core Web API
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Token Postman JWT Token возвращает 401, несанкционированный в ASP.net Core Web API
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Token Postman JWT Token возвращает 401, несанкционированный в ASP.net Core Web API
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Token Postman JWT Token возвращает 401, несанкционированный в ASP.net Core Web API
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

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