private string GetJwtToken(ClaimsIdentity identity)
        {
            JwtSecurityToken jwtSecurityToken = new JwtSecurityToken(
                issuer: AuthJwtTokenOptions.Issuer,
                audience: AuthJwtTokenOptions.Audience,
                notBefore: DateTime.UtcNow,
                claims: identity.Claims,
                expires: DateTime.UtcNow.Add(TimeSpan.FromHours(1)),
                signingCredentials: new SigningCredentials(AuthJwtTokenOptions.GetSecurityKey(), SecurityAlgorithms.HmacSha256));

            return(new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken));
        }
Beispiel #2
0
        public void ConfigureServices(IServiceCollection services)
        {
            string connection = Configuration.GetConnectionString("DefaultConnection");

            services.AddDbContext <UsersStoreContext>(options =>
                                                      options.UseSqlServer(connection));

            //services.AddRouting();

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer = true,
                    ValidIssuer    = AuthJwtTokenOptions.Issuer,

                    ValidateAudience = true,
                    ValidAudience    = AuthJwtTokenOptions.Audience,
                    ValidateLifetime = true,

                    IssuerSigningKey         = AuthJwtTokenOptions.GetSecurityKey(),
                    ValidateIssuerSigningKey = true
                };
            });

            services.AddMvc();

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Title = "User store", Description = "Swagger Core API"
                });
                c.IncludeXmlComments($"{AppDomain.CurrentDomain.BaseDirectory}UsersStore.Web.xml");
            });

            services.AddScoped <IUsersRepository, UsersRepository>();
        }