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)); }
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); }
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); }
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)); }
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); }