public async Task AlterarSenhaComTokenRecuperacao(RecuperacaoSenhaDto recuperacaoSenhaDto) { Usuario usuario = repositorioUsuario.ObterPorTokenRecuperacaoSenha(recuperacaoSenhaDto.Token); if (usuario == null) { throw new NegocioException("Usuário não encontrado."); } if (!usuario.TokenRecuperacaoSenhaEstaValido()) { throw new NegocioException("Este link expirou. Clique em continuar para solicitar um novo link de recuperação de senha.", 403); } usuario.ValidarSenha(recuperacaoSenhaDto.NovaSenha); var retornoApi = await servicoEOL.AlterarSenha(usuario.Login, recuperacaoSenhaDto.NovaSenha); if (!retornoApi.SenhaAlterada) { throw new NegocioException(retornoApi.Mensagem, retornoApi.StatusRetorno); } usuario.FinalizarRecuperacaoSenha(); repositorioUsuario.Salvar(usuario); }
public async Task <IActionResult> RecuperarSenha([FromForm] RecuperacaoSenhaDto recuperacaoSenhaDto) { var retorno = await comandosUsuario.AlterarSenhaComTokenRecuperacao(recuperacaoSenhaDto); if (!retorno.Autenticado) { return(StatusCode(401)); } return(Ok(retorno)); }
public async Task <IActionResult> RecuperarSenha([FromForm] RecuperacaoSenhaDto recuperacaoSenhaDto) { await comandosUsuario.AlterarSenhaComTokenRecuperacao(recuperacaoSenhaDto); return(Ok()); }