using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.IdentityModel.Tokens; using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using System.Text; using WebApp; var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddRazorPages(); builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["SecretKey"])); options.TokenValidationParameters = new() { ValidateLifetime = true, IssuerSigningKey = secretKey, ValidateIssuer = false, ValidateAudience = false, }; options.Events = new JwtBearerEvents() { OnMessageReceived = context => { // Получаем из кукис JWT токен context.Token = context.Request.Cookies["21gunsthebest"]; return Task.CompletedTask; } }; }); builder.Services.AddAuthorization(); // Подключаемся к API APIClient.Connect(builder.Configuration); var app = builder.Build(); // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.MapRazorPages(); app.Run();