public async Task <Response <Jwt> > SignIn(SignInQueryFilter model)
        {
            User user = await userRepository.GetAuth(model);

            Administrator administrator = await administratorRepository.GetAuth(model);

            if (user == null && administrator == null)
            {
                throw new BusinessException("Los datos que ingresaste no coinciden con ninguna cuenta");
            }

            var data =
                new {
                Id   = user != null ? user.Id : administrator.Id,
                Role = user != null ? "user" : "administrator"
            };

            var token = jwtUtil.Generate(data);

            if (token == null)
            {
                throw new BusinessException("Los datos que ingresaste no coinciden con ninguna cuenta");
            }

            token.User          = user;
            token.Administrator = administrator;

            return(new Response <Jwt>(true, "", token));
        }
Esempio n. 2
0
        public async Task <IActionResult> Authenticate([FromBody] SignInQueryFilter model)
        {
            var response = await authService.SignIn(model);

            var apiResponse = new ApiResponse <JwtDto>(
                response.IsDone,
                response.Message,
                mapper.Map <Jwt, JwtDto>(response.Data),
                null
                );

            return(Ok(apiResponse));
        }
        public async Task <Administrator> GetAuth(SignInQueryFilter model)
        {
            Administrator administrator = null;

            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                var sqlResponse =
                    await connection.QueryAsync <Administrator>($"select * from administrator where email = '{model.Email}' and password = '******' and active = 1");

                administrator = sqlResponse.FirstOrDefault();
            }

            return(administrator);
        }
        public async Task <User> GetAuth(SignInQueryFilter model)
        {
            User user = null;

            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                var sqlResponse =
                    await connection.QueryAsync <User>($"select * from users where email = '{model.Email}' and password = '******'");

                user = sqlResponse.FirstOrDefault();
            }

            return(user);
        }
Esempio n. 5
0
        public async Task <User> GetByEmailPassword(SignInQueryFilter user)
        {
            User data = null;

            using (var connection = new MySqlConnection(_connectionString)){
                var sqlResponse =
                    await connection.QueryAsync <User>(
                        "select * from users where email = '{user.Email}' and password ='******'"
                        );

                data = sqlResponse.FirstOrDefault();
            }

            return(data);
        }
Esempio n. 6
0
        public async Task <IActionResult> Post(SignInQueryFilter model)
        {
            var response = await authService.Authenticate(model);

            var apiResponse = new ApiResponse <JwtDto>(
                new JwtDto()
            {
                Token          = response.Token,
                ExpirationDate = response.ExpirationDate,
                User           = new UserDto()
                {
                    Id    = response.User.Id,
                    Email = response.User.Email,
                    Name  = response.User.Name
                }
            },
                null

                );

            return(Ok(response));
        }
Esempio n. 7
0
        public async Task <Jwt> Authenticate(SignInQueryFilter user)
        {
            var userData = await userRepository.GetByEmailPassword(user);

            if (userData == null)
            {
                throw new BusinessException("Los datos de acceso son incorrectos");
            }
            var data = new {
                Id   = userData.Id,
                Name = userData.Name
            };

            var token = jwtUtil.Generate(data);

            if (token == null)
            {
                throw new BusinessException("No se puede iniciar sesión, intente nuevamente");
            }

            token.User = userData;

            return(token);
        }