Как авторизоваться с использованием токена, созданного на другом сервере отдыха в ASP.NET Core 8?
Я работаю над проектом веб-API ASP.NET Core 8.
Существует еще один существующий REST-сервер, назовите его; если вы передадите имя пользователя и пароль на его URL-адрес по адресу/api/token
, он вернет токен JWT.
У него также есть еще одна конечная точка, которая будет проверять токен.
Теперь предположим, что мой API вызывается с одним из этих токенов.
Как я могу пройти аутентификацию по этому токену в методах моего контроллера? Мне интересно, смогу ли я реализовать собственный атрибут авторизации, который будет спрашиватьOldServer
хорош ли токен, но не знаю, как это сделать.
Вот мой основной стартап на данный момент. Думаю, мне следует использоватьAddJwtBearer()
как показано ниже, но я понятия не имею, что мне следует использовать дляAuthority
иAudience
. Документация не существует.
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
var configuration = builder.Configuration;
builder.Services.AddSingleton(configuration);
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddAuthorization();
builder.Services.AddAuthentication()
.AddJwtBearer(options =>
{
options.Audience = "http://localhost:8080/";
options.Authority = "http://localhost:8080/";
});
var section = builder.Configuration.GetSection("ServiceSettings");
ServiceSettings? settings = section.Get < ServiceSettings?>();
if (settings != null)
{
builder.Services.AddSingleton(settings);
}
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();