public IHttpActionResult Login(UsuarioSenhaDTO usuario) { if (usuario == null || usuario.Login == null || usuario.Senha == null) { return(BadRequest()); } Usuario user; try { Modelo db = new Modelo(); user = db.Usuarios.Find(usuario.Login); if (user == null) { return(BadRequest("Usuário não encontrado!")); } string senhaCrypt = CryptoGraph.Encrypt(usuario.Senha); if (user.Senha != senhaCrypt) { return(BadRequest("Senha incorreta!")); } string token = TokenServices.GenerateToken(user.Login, roles: user.Perfil); var userObj = new { Token = token, Usuario = user.Nome, usuario.Login, user.FuncionarioId, user.Funcionario?.MatriculaFuncionario, user.Funcionario?.CodigoEmpresa, user.Perfil }; db.Dispose(); return(Ok(userObj)); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, ex)); } }
public IHttpActionResult RecuperarSenha(UsuarioSenhaDTO usuario) { if (string.IsNullOrEmpty(usuario.Login)) { return(BadRequest("É necessário informar o login!")); } if (string.IsNullOrEmpty(usuario.Senha)) { return(BadRequest("É necessário informar a senha!")); } if (string.IsNullOrEmpty(usuario.CodigoRecuperacao)) { return(BadRequest("É necessário informa o código de recuperação!")); } try { Usuario usuarioDB = usuariosService.GetUsuario(usuario.Login); if (usuario.CodigoRecuperacao != usuarioDB.CodigoRecuperacao) { return(BadRequest("Código de Recuperação inválido!")); } usuarioDB.Senha = CryptoGraph.Encrypt(usuario.Senha); usuarioDB.CodigoRecuperacao = null; usuariosService.AddOrUpdateUsuario(usuarioDB); return(Ok("Senha alterada com Sucesso!")); } catch (UsuarioNaoEncontradoException) { return(Content(HttpStatusCode.NotFound, "Usuário não encontrado!")); } catch { return(Content(HttpStatusCode.InternalServerError, "Ocorreu um erro desconhecido. Por favor, entre em contato com o suporte.")); } }