public static TokenConfigurationsModel AddTokenSettings(this IServiceCollection services, IConfiguration configuration) { var tokenConfigurations = new TokenConfigurationsModel(); new ConfigureFromConfigurationOptions <TokenConfigurationsModel>( configuration.GetSection("TokenConfigurations") ).Configure(tokenConfigurations); return(tokenConfigurations); }
public AccessManager( UserManager <Usuario> userManager, SignInManager <Usuario> signInManager, SigningConfigurations signingConfigurations, TokenConfigurationsModel tokenConfigurations, IPerfilDeAcessoService perfilDeAcessoService) { _userManager = userManager; _signInManager = signInManager; _signingConfigurations = signingConfigurations; _tokenConfigurations = tokenConfigurations; _perfilDeAcessoService = perfilDeAcessoService; }
public static IServiceCollection AddJwtSecurity( this IServiceCollection services, SigningConfigurations signingConfigurations, TokenConfigurationsModel tokenConfigurations) { services.AddAuthentication(authOptions => { authOptions.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; authOptions.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(bearerOptions => { var paramsValidation = bearerOptions.TokenValidationParameters; paramsValidation.IssuerSigningKey = signingConfigurations.Key; paramsValidation.ValidAudience = tokenConfigurations.Audience; paramsValidation.ValidIssuer = tokenConfigurations.Issuer; paramsValidation.ValidateIssuerSigningKey = true; paramsValidation.ValidateLifetime = true; paramsValidation.ClockSkew = TimeSpan.Zero; }); return(services); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddHealthChecks(); services.UseMyAuthorization(); services.UseMyServices(Configuration); services.AddControllers(); services.AddDbContext <ApiContext>(); services.AddIdentity <Usuario, IdentityRole>(options => { options.Password = new PasswordOptions { RequireDigit = true, RequiredLength = 8, RequireLowercase = true, RequireUppercase = true, RequireNonAlphanumeric = true }; }) .AddEntityFrameworkStores <ApiContext>() .AddDefaultTokenProviders(); services.AddScoped <AccessManager>(); TokenConfigurationsModel tokenConfigurations = services.AddTokenSettings(Configuration); services.AddSingleton(tokenConfigurations); SigningConfigurations signingConfigurations = services.AddSigningSettings(); services.AddJwtSecurity(signingConfigurations, tokenConfigurations); services.UseMyCors(Configuration); }