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); }
// 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; }