public void Configure(EntityTypeBuilder <User> builder) { builder.ToTable(nameof(User)).HasIndex(a => a.EmailAddress).IsUnique(); builder.ToTable(nameof(User)).Property(a => a.EmailAddress).IsRequired(); builder.ToTable(nameof(User)).Property(a => a.PasswordHashToBase64).IsRequired(); var seedData = new User[] { new User { UserId = 1, EmailAddress = "*****@*****.**", PasswordHashToBase64 = CryptographyLogic.HashStringToSha256ToBase64("password123.ABC") }, new User { UserId = 2, EmailAddress = "*****@*****.**", PasswordHashToBase64 = CryptographyLogic.HashStringToSha256ToBase64("password456.DEF") }, new User { UserId = 3, EmailAddress = "*****@*****.**", PasswordHashToBase64 = CryptographyLogic.HashStringToSha256ToBase64("password789.GHI") } }; builder.ToTable(nameof(User)).HasData(seedData); }
public async Task <LoginResponse> Handle(LoginRequest request, CancellationToken cancellationToken) { var user = userRepo.Query().Where(a => a.EmailAddress == request.RequestModel.EmailAddress).SingleOrDefault(); if (user == null) { throw new NotFoundException("User not found."); } if (user.PasswordHashToBase64 != CryptographyLogic.HashStringToSha256ToBase64(request.RequestModel.Password)) { throw new IdentityException("Invalid credentials!"); } var jwtDetail = await jwtManager.GenerateJwtDetails(new List <Claim>() { new Claim(CustomClaimTypeConstants.EmailAddress, user.EmailAddress) }); return(new LoginResponse { ResponseModel = new JwtDetailResponseModel { JwtDetail = jwtDetail } }); }