diff --git a/AMessanger.API/Program.cs b/AMessanger.API/Program.cs index 76d39e5..b668b46 100644 --- a/AMessanger.API/Program.cs +++ b/AMessanger.API/Program.cs @@ -1,3 +1,4 @@ +using AMessanger.Application; using AMessanger.Application.Hubs; var builder = WebApplication.CreateBuilder(args); @@ -12,6 +13,8 @@ builder.Services.AddSwaggerGen(); builder.Services.AddSignalR(); +builder.Services.AddAuth(builder.Configuration); + var app = builder.Build(); // Configure the HTTP request pipeline. diff --git a/AMessanger.Application/AMessanger.Application.csproj b/AMessanger.Application/AMessanger.Application.csproj index 5cc5881..4022601 100644 --- a/AMessanger.Application/AMessanger.Application.csproj +++ b/AMessanger.Application/AMessanger.Application.csproj @@ -11,6 +11,7 @@ + diff --git a/AMessanger.Application/ApplicationExtensions.cs b/AMessanger.Application/ApplicationExtensions.cs new file mode 100644 index 0000000..3a46a64 --- /dev/null +++ b/AMessanger.Application/ApplicationExtensions.cs @@ -0,0 +1,33 @@ +using System.Text; +using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.IdentityModel.Tokens; + +namespace AMessanger.Application; + +public static class ApplicationExtensions +{ + public static IServiceCollection AddAuth(this IServiceCollection services, IConfiguration configuration) + { + services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) + .AddJwtBearer(options => + { + options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters + { + ValidateIssuer = true, + ValidateAudience = true, + ValidateLifetime = true, + ValidateIssuerSigningKey = true, + + ValidIssuer = configuration["Jwt:Issuer"], + ValidAudience = configuration["Jwt:Audience"], + IssuerSigningKey = new SymmetricSecurityKey( + Encoding.UTF8.GetBytes(configuration["Jwt:Key"]!) + ) + }; + }); + + return services.AddAuthorization(); + } +} \ No newline at end of file diff --git a/Directory.Packages.props b/Directory.Packages.props index 77021a7..0f8ee79 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -3,6 +3,7 @@ true +