using System.Text; using Core.Entities.Identity; using Infrastructure.Identity; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Identity; using Microsoft.IdentityModel.Tokens; namespace API.Extensions { public static class IdentityServiceExtensions { public static IServiceCollection AddIdentityServices(this IServiceCollection services, IConfiguration config) { var builder = services.AddIdentityCore(); builder = new IdentityBuilder(builder.UserType, builder.Services); builder.AddEntityFrameworkStores(); builder.AddSignInManager>(); services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options =>{ options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(config["Token:Key"])), ValidIssuer = config["Token:Issuer"], ValidateIssuer = true, ValidateAudience = false }; }); return services; } } }