mirror of
https://github.com/ryzij/AMessanger-Server.git
synced 2026-09-18 19:25:38 +00:00
38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
using System.Text;
|
|
using AMessanger.Application.Settings;
|
|
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)
|
|
{
|
|
var jwtConf = configuration.GetSection(JwtSettings.SECTION_NAME);
|
|
services.Configure<JwtSettings>(jwtConf);
|
|
var settings = jwtConf.Get<JwtSettings>()!;
|
|
|
|
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
|
.AddJwtBearer(options =>
|
|
{
|
|
options.TokenValidationParameters = new TokenValidationParameters
|
|
{
|
|
ValidateIssuer = true,
|
|
ValidateAudience = true,
|
|
ValidateLifetime = true,
|
|
ValidateIssuerSigningKey = true,
|
|
|
|
ValidIssuer = settings.Issuer,
|
|
ValidAudience = settings.Audience,
|
|
IssuerSigningKey = new SymmetricSecurityKey(
|
|
Encoding.UTF8.GetBytes(settings.Key)
|
|
)
|
|
};
|
|
});
|
|
|
|
return services.AddAuthorization();
|
|
}
|
|
} |