public async Task <ActionResult <IngresarResponse> > Ingresar([FromBody] GetUsuarioLoginQuery query) { var response = await Mediator.Send(query); // authentication successful so generate jwt token var token = GenerateToken(new Claim[] { new Claim(ClaimTypes.Name, response.NombreUsuario), new Claim(ClaimTypes.NameIdentifier, response.IdUsuario.ToString()), new Claim(ClaimTypes.Role, response.TipoUsuario.ToString()), }); return(Ok(new IngresarResponse { User = new UserInfo { TipoUsuario = response.TipoUsuario, Email = response.Email, IdUsuario = response.IdUsuario, NombreUsuario = response.NombreUsuario, RefreshToken = response.RefreshToken }, Token = token.token, RefreshToken = response.RefreshToken, ExpirationDate = token.expirationDate })); }
public async Task SeLogueaCorrectamente() { var client = GetClient(); var loginCommand = new GetUsuarioLoginQuery { NombreUsuario = "Admin", Password = "******" }; var contentLogin = Utilities.GetRequestContent(loginCommand); var response = await client.PostAsync($"/api/Cuenta/ingresar", contentLogin); response.EnsureSuccessStatusCode(); var responseContent = await Utilities.GetResponseContent <IngresarResponse>(response); Assert.NotNull(responseContent.Token); Assert.NotNull(responseContent.User); Assert.NotNull(responseContent.User.RefreshToken); }
public async Task DespuesDe5IntentosIncorrectosLaCuentaSeBloquea() { var client = GetClient(); var loginCommand = new GetUsuarioLoginQuery { NombreUsuario = "Admin", Password = "******" }; var contentLogin = Utilities.GetRequestContent(loginCommand); for (int i = 0; i < 5; i++) { var resp = await client.PostAsync($"/api/Cuenta/ingresar", contentLogin); Assert.Equal(HttpStatusCode.NotFound, resp.StatusCode); } var response = await client.PostAsync($"/api/Cuenta/ingresar", contentLogin); Assert.Equal(HttpStatusCode.Forbidden, response.StatusCode); }
public async Task SeLogueaYActualizaTokenCorrectamente() { var client = GetClient(); var loginCommand = new GetUsuarioLoginQuery { NombreUsuario = "User", Password = "******" }; var contentLogin = Utilities.GetRequestContent(loginCommand); var response = await client.PostAsync($"/api/Cuenta/Ingresar", contentLogin); response.EnsureSuccessStatusCode(); var responseContent = await Utilities.GetResponseContent <IngresarResponse>(response); Assert.NotNull(responseContent.Token); Assert.NotNull(responseContent.User); Assert.NotNull(responseContent.User.RefreshToken); var refreshCommand = new RefreshCredentialsCommand { RefreshToken = responseContent.User.RefreshToken, Token = responseContent.Token }; var contentRefresh = Utilities.GetRequestContent(refreshCommand); var responseRefresh = await client.PostAsync($"/api/Cuenta/RefreshCredentials", contentRefresh); responseRefresh.EnsureSuccessStatusCode(); var responseR = await Utilities.GetResponseContent <IngresarResponse>(response); Assert.NotNull(responseR.Token); Assert.NotNull(responseR.User); Assert.NotNull(responseR.User.RefreshToken); }
public async Task CreaUsuarioEIntentaLoginSinConfirmarEmail() { var client = GetClient(); var command = new CreateUsuarioCommand { Email = "*****@*****.**", TipoUsuario = (int)FitoReport.Domain.Enums.TiposUsuario.Admin, NombreUsuario = "admin2987", Password = "******", Nombre = "Nombre", ApellidoMaterno = "Apellido materno", ApellidoPaterno = "Apellido paterno" }; var content = Utilities.GetRequestContent(command); var response = await client.PostAsync($"/api/Cuenta/createuser", content); var responseContent = await Utilities.GetResponseContent <CreateUsuarioResponse>(response); Assert.Equal(command.Email, responseContent.Email); Assert.Equal(command.NombreUsuario, responseContent.NombreUsuario); response.EnsureSuccessStatusCode(); var loginCommand = new GetUsuarioLoginQuery { NombreUsuario = "admin2987", Password = "******" }; var contentLogin = Utilities.GetRequestContent(loginCommand); var responseLogin = await client.PostAsync($"/api/Cuenta/ingresar", contentLogin); Assert.Equal(HttpStatusCode.Forbidden, responseLogin.StatusCode); }