public async Task MediatorHandleCustomerLoginRequest() { var request = new CustomerRegistrationRequest() { Email = $"zoom {new Random().Next(0, 9999999)}@gmail.com", FirstName = "asdasdsadas", LastName = "qweqweqwe", Password = "******" }; Result result = await mediator.Send(request); Assert.True(result.Succeeded, "New Customer should be registered"); var customer = await customerManager.FindByEmailAsync(request.Email); Assert.True(customer != null, "Customer should not be null since we just recently registered this customer"); customer.UserInfo.EmailConfirmed = true; bool updated = await customerManager.UpdateAsync(customer); Assert.True(updated, "Customer should be updated"); var customerLogin = new CustomerLoginRequest() { Email = customer.UserInfo.Email, Password = request.Password }; Result <AuthenticationTokens> loginResult = await mediator.Send(customerLogin); Assert.True(result.Succeeded, "Authentication tokens should be generated for CustomerLoginRequest"); Assert.True(loginResult.Response.RefresthToken != null, "Refresh token should not be null after login successfully"); Assert.True(loginResult.Response.AccessToken != null, "Access token should not be null after login successfully"); }
public async Task <Result <AuthenticationTokens> > Handle(CustomerLoginRequest request, CancellationToken cancellationToken) { var result = await authenticationService.LoginCustomerAsync(request); if (!result.Succeeded) { logger.LogError("ExchangeTokenHandler. Client login failed. Request email {email}, errors {@errors}", request.Email, result.Errors); } return(result); }
public Customer Authenticate(CustomerLoginRequest request) { var customer = _context.Customer.FirstOrDefault(x => x.Username == request.Username); if (customer != null) { var newHash = HashGenerator.GenerateHash(customer.PasswordSalt, request.Password); if (customer.PasswordHash == newHash) { return(_mapper.Map <Customer>(customer)); } } return(null); }
public HttpResponseMessage Put([FromBody] CustomerLoginRequest customerLogin) { if (ModelState.IsValid && _customerRepository.IsAdmin(customerLogin)) { var result = _customerRepository.InsertCustomer(customerLogin); if (result) { return(Request.CreateResponse(HttpStatusCode.OK, $"The customer was added")); } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, $"The customer was not added")); } } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Invalid credentials!")); } }
public async Task <IActionResult> Login([FromBody] CustomerLoginRequest request) { if (!ModelState.IsValid) { return(BadRequest(new AuthFailedResponse { Errors = ModelState.Values.SelectMany(x => x.Errors.Select(xx => xx.ErrorMessage)) })); } var authResponse = await _customersService.LoginCustomerAsync(request.Email, request.Password); if (!authResponse.Success) { return(BadRequest(new AuthFailedResponse { Errors = authResponse.Errors })); } return(Ok(new AuthSuccessResponse { Token = authResponse.Token })); }
public async Task <Result <AuthenticationTokens> > LoginCustomerAsync(CustomerLoginRequest request) { Customer customer = await customerManager.FindByEmailAsync(request.Email); if (customer != null) { if (!await customerManager.CheckPasswordAsync(customer, request.Password)) { logger.LogInformation("IAuthService. Login failed: User provided invalid password. " + "Client.Id {Id}, Client.Email {Email} ", customer.Id, customer.UserInfo.Email); return(Result <AuthenticationTokens> .Failure("Invalid login credentials")); } return(await tokenService.GenerateAuthenticationTokensAsync(customer)); } logger.LogInformation("IAuthService. Login failed: User provided nonexistent Email. " + "User.Email {Email}", request.Email); return(Result <AuthenticationTokens> .Failure("Invalid login credentials")); }