public async Task <IActionResult> Login([FromBody] CreateUserSessionCommand command) { var result = await _bus.Send(command); return(result.Success ? Success(result.Value) : Error(result.ErrorMessage, result.Code)); }
public async Task <DomainResult <string> > Handle(CreateUserSessionCommand command, CancellationToken cancellationToken) { var user = await _accountRepository.GetUserByEmailAndPassword(command.Email, command.Password); if (user is null) { return(DomainResult.Failure <string>("User not found", HttpStatusCode.Unauthorized)); } var token = _jwtAuthService.CreateJwtToken(user); return(DomainResult.Ok(token)); }
public async void Post_Accounts_WithValidUser_Success() { // Arrange var command = new CreateUserSessionCommand { Email = "*****@*****.**", Password = "******" }; //Act using (var body = new StringContent(JsonConvert.SerializeObject(command), Encoding.UTF8, "application/json")) using (var result = await Client.PostAsync(_resource, body)) { var response = await result.ReadAsResponseAsync <string>(); //Assert response.IsSuccess.Should().BeTrue(); response.Result.Should().NotBeNullOrWhiteSpace(); } }
public async Task LoginAsAdmin() { var command = new CreateUserSessionCommand { Email = "*****@*****.**", Password = "******" }; using (var body = new StringContent(JsonConvert.SerializeObject(command), Encoding.UTF8, "application/json")) using (var result = await Client.PostAsync("/api/accounts/", body)) { result.EnsureSuccessStatusCode(); var response = await result.ReadAsResponseAsync <string>(); if (Client.DefaultRequestHeaders.Contains("Authorization")) { Client.DefaultRequestHeaders.Remove("Authorization"); } Client.DefaultRequestHeaders.Add("Authorization", $"Bearer {response.Result}"); } }