Example #1
0
        public JWTBasicPayload GetJWTPayloadSettings()
        {
            JWTBasicPayload settings = new JWTBasicPayload();

            settings.Key                 = Configuration["JwtPayloadSettings:key"];
            settings.Audience            = Configuration["JwtPayloadSettings:audience"];
            settings.Issuer              = Configuration["JwtPayloadSettings:issuer"];
            settings.MinutesToExpiration = Configuration["JwtPayloadSettings:minutesToExpiration"];

            return(settings);
        }
Example #2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            JWTBasicPayload payloadSettings = GetJWTPayloadSettings();

            services.AddSingleton <JWTBasicPayload>(payloadSettings);

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo {
                    Title = "Angular Authentication Swagger API", Version = "v1"
                });
            });

            // Register Jwt as the Authentication service
            services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = "JwtBearer";
                options.DefaultChallengeScheme    = "JwtBearer";
            })
            .AddJwtBearer("JwtBearer", jwtBearerOptions =>
            {
                jwtBearerOptions.TokenValidationParameters =
                    new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(
                        Encoding.UTF8.GetBytes(payloadSettings.Key)),
                    ValidateIssuer = true,
                    ValidIssuer    = payloadSettings.Issuer,

                    ValidateAudience = true,
                    ValidAudience    = payloadSettings.Audience,

                    ValidateLifetime = true,
                    ClockSkew        = TimeSpan.FromMinutes(
                        int.Parse(payloadSettings.MinutesToExpiration))
                };
            });

            services.AddCors();
        }
 public AuthController(JWTBasicPayload configuration)
 {
     _configuraton = configuration;
 }