public void ConfigureServices(IServiceCollection services) { services.AddDbContext <DatabaseContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")), ServiceLifetime.Transient); services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.RequireHttpsMetadata = true; options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidIssuer = JwtTokenConfiguration.Issuer, ValidateAudience = true, ValidAudience = JwtTokenConfiguration.Audience, ValidateLifetime = true, IssuerSigningKey = JwtTokenConfiguration.GetSymmetricSecurityKey(), ValidateIssuerSigningKey = true, }; }); services.AddMvc(); services.AddCors(o => o.AddPolicy("CorsPolicy", builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader())); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "Graduate Work API", Version = "v1" }); }); services.AddSwaggerGen(sg => { { sg.AddSecurityDefinition("Bearer", new ApiKeyScheme() { In = "header", Description = "Please insert JWT with Bearer into field", Name = "Authorization", Type = "apiKey" }); }; var basePath = AppContext.BaseDirectory; var xmlPath = Path.Combine(basePath, "GraduateWorkApi.xml"); sg.IncludeXmlComments(xmlPath); }); RegisterTypes(services); }
public JwtSecurityToken GenerateJwtTokenAsync(Guid userId) { var claims = new List <Claim> { new Claim(ClaimsIdentity.DefaultNameClaimType, userId.ToString()), }; var identity = new ClaimsIdentity (claims, "Token", ClaimsIdentity.DefaultNameClaimType, ClaimsIdentity.DefaultRoleClaimType); return(new JwtSecurityToken( issuer: JwtTokenConfiguration.Issuer, audience: JwtTokenConfiguration.Audience, notBefore: DateTime.UtcNow, claims: identity.Claims, expires: DateTime.UtcNow.Add(TimeSpan.FromDays(JwtTokenConfiguration.LifeTime)), signingCredentials: new SigningCredentials(JwtTokenConfiguration.GetSymmetricSecurityKey(), SecurityAlgorithms.HmacSha256))); }
/// <summary> /// Method for add authentication. /// </summary> /// <param name="services"><see cref="IServiceCollection"/> instance.</param> public static void AddAuthentication(IServiceCollection services) { services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.RequireHttpsMetadata = true; options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidIssuer = JwtTokenConfiguration.Issuer, ValidateAudience = true, ValidAudience = JwtTokenConfiguration.Audience, ValidateLifetime = true, IssuerSigningKey = JwtTokenConfiguration.GetSymmetricSecurityKey(), ValidateIssuerSigningKey = true, }; }); }