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
            }));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }