public string GetEncodedJwtToken(string userEmail) { var claims = new List <Claim> { new Claim(JwtRegisteredClaimNames.Sub, userEmail) }; var jwtToken = new JwtSecurityToken( TokenConfig.ISSUER, TokenConfig.AUDIENCE, claims, expires: DateTime.Now.Add(TimeSpan.FromMinutes(TokenConfig.LIFETIME)), signingCredentials: new SigningCredentials(TokenConfig.GetSymmetricSecurityKey(), SecurityAlgorithms.HmacSha256) ); return(new JwtSecurityTokenHandler().WriteToken(jwtToken)); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc(opt => { opt.EnableEndpointRouting = false; }) .AddFluentValidation(fv => { fv.RegisterValidatorsFromAssemblyContaining <RegisterValidator>(); fv.RegisterValidatorsFromAssemblyContaining <BookValidator>(); fv.RegisterValidatorsFromAssemblyContaining <LoginValidator>(); }) .SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddDbContext <ApplicationContext>(options => { options.UseSqlServer(Configuration["ConnectionStrings:NakkisApp"]); }); services.AddIdentity <User, Role>(options => { options.Password.RequireDigit = false; options.Password.RequireUppercase = false; options.Password.RequireNonAlphanumeric = false; options.Password.RequiredLength = 6; }) .AddEntityFrameworkStores <ApplicationContext>() .AddDefaultTokenProviders(); services.AddScoped(x => x.GetRequiredService <ApplicationContext>().Carts); services.AddScoped(x => x.GetRequiredService <ApplicationContext>().CartItems); services.AddScoped(x => x.GetRequiredService <ApplicationContext>().Categories); services.AddScoped(x => x.GetRequiredService <ApplicationContext>().Products); services.AddScoped(x => x.GetRequiredService <ApplicationContext>().Departments); services.AddScoped(x => x.GetRequiredService <ApplicationContext>().Variants); services.AddCors(options => { options.AddPolicy("Policy", builder => { builder.AllowAnyOrigin() .AllowAnyHeader() .AllowAnyMethod(); }); }); JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); services .AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(cfg => { cfg.RequireHttpsMetadata = false; cfg.SaveToken = true; cfg.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidIssuer = TokenConfig.ISSUER, ValidateAudience = true, ValidAudience = TokenConfig.AUDIENCE, ValidateLifetime = true, IssuerSigningKey = TokenConfig.GetSymmetricSecurityKey(), ValidateIssuerSigningKey = true, }; }); }