| @@ -30,12 +30,17 @@ namespace Diligent.WebAPI.Business.Services | |||
| public async Task<AuthenticateResponseDto?> Authenticate(AuthenticateRequestDto model) | |||
| { | |||
| var user = await _userManager.Users.Where(x => x.UserName == model.Username).FirstOrDefaultAsync(); | |||
| var user = await _userManager.FindByNameAsync(model.Username); | |||
| // return null if user not found | |||
| if (user == null) | |||
| return null; | |||
| var result = await _userManager.CheckPasswordAsync(user, model.Password); | |||
| if (!result) | |||
| return null; | |||
| // authentication successful so generate jwt token | |||
| var token = GenerateJwtToken(user); | |||
| @@ -0,0 +1,18 @@ | |||
| namespace Diligent.WebAPI.Host.Extensions | |||
| { | |||
| public static class CorsConfigurationExtension | |||
| { | |||
| public static void ConfigureCors(this WebApplicationBuilder builder) | |||
| { | |||
| var services = builder.Services; | |||
| services.AddCors(options => | |||
| { | |||
| options.AddPolicy("CorsPolicy", builder => | |||
| builder.WithOrigins("http://localhost:3000") | |||
| .AllowAnyMethod() | |||
| .AllowAnyHeader() | |||
| .AllowCredentials()); | |||
| }); | |||
| } | |||
| } | |||
| } | |||
| @@ -7,6 +7,7 @@ | |||
| /// </summary> | |||
| public static void ConfigureHost(this WebApplicationBuilder builder) | |||
| { | |||
| builder.ConfigureCors(); | |||
| builder.ConfigureAuth(); | |||
| builder.ConfigureIdentity(); | |||
| builder.ConfigureValidationMiddleware(); | |||
| @@ -22,6 +23,7 @@ | |||
| /// </summary> | |||
| public static void ConfigureHost(this WebApplication app) | |||
| { | |||
| app.UseCors("CorsPolicy"); | |||
| app.UseCorrelationId(); | |||
| app.MapControllers(); | |||