From 8905e7f27c5ab3d7dec0881307678684946963b2 Mon Sep 17 00:00:00 2001
From: gabrielb
Date: Mon, 18 May 2026 20:44:03 -0300
Subject: [PATCH] =?UTF-8?q?feat:=20remove=20tela=20intermedi=C3=A1ria=20de?=
=?UTF-8?q?=20login=20=E2=80=94=20home=20vai=20direto=20ao=20Keycloak?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Remove src/pages/login.vue e atualiza index.vue e primeiro-acesso.vue
para chamar login() diretamente com login_hint pré-preenchido, eliminando
o passo desnecessário antes do redirect ao Keycloak.
Co-Authored-By: Claude Opus 4.7
---
src/pages/index.vue | 18 +++-
src/pages/login.vue | 152 ----------------------------------
src/pages/primeiro-acesso.vue | 15 +++-
3 files changed, 28 insertions(+), 157 deletions(-)
delete mode 100644 src/pages/login.vue
diff --git a/src/pages/index.vue b/src/pages/index.vue
index dca9c7d..8cabcb5 100644
--- a/src/pages/index.vue
+++ b/src/pages/index.vue
@@ -11,11 +11,12 @@ const { prefersReducedMotion } = useMotion()
const router = useRouter()
const prefeitura = usePrefeituraStore()
-const { isAuthenticated, nomeUsuario } = useAuth()
+const { isAuthenticated, nomeUsuario, login } = useAuth()
const { requested: focusLoginRequested, consume: consumeFocusLogin } = useFocusLoginInput()
const documento = ref('')
const erro = ref('')
+const carregando = ref(false)
// Ref ao DocumentoInput — usado pelo botão "Entrar" do AppHeader pra focar o campo
const documentoRef = ref(null)
@@ -103,13 +104,21 @@ const servicosAutenticados = [
{ icon: 'pi-user', titulo: 'Dados Cadastrais', descricao: 'Visualize e mantenha seus dados sempre atualizados.', to: '/portal/dados' },
]
-function continuar() {
- if (documento.value.replace(/\D/g, '').length < 11) {
+async function continuar() {
+ const doc = documento.value.replace(/\D/g, '')
+ if (doc.length < 11) {
erro.value = 'Informe um CPF (11 dígitos) ou CNPJ (14 dígitos) válido.'
return
}
erro.value = ''
- router.push({ path: '/login', query: { doc: documento.value } })
+ carregando.value = true
+ try {
+ await login(doc, '/portal/painel')
+ // login() faz window.location → não retorna aqui em condições normais
+ } catch (e) {
+ carregando.value = false
+ erro.value = e?.data?.statusMessage ?? 'Não foi possível iniciar o login.'
+ }
}
@@ -257,6 +266,7 @@ function continuar() {
icon-pos="right"
class="w-full"
size="large"
+ :loading="carregando"
@click="continuar"
/>
diff --git a/src/pages/login.vue b/src/pages/login.vue
deleted file mode 100644
index 1bac248..0000000
--- a/src/pages/login.vue
+++ /dev/null
@@ -1,152 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Acesso seguro
-
Portal do Contribuinte
-
-
-
-
-
-
-
-
-
- Entrando como
-
-
-
-
-
-
-
-
{{ docFormatado }}
-
{{ tipoDoc }}
-
-
-
-
-
-
-
- Você será redirecionado para o serviço de autenticação seguro
- onde deverá digitar sua senha.
-
-
-
-
- {{ erro }}
-
-
-
-
-
-
- Esqueci minha senha
-
-
- Ainda não tem acesso? Credenciar-se
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/pages/primeiro-acesso.vue b/src/pages/primeiro-acesso.vue
index 0ba2887..53e3075 100644
--- a/src/pages/primeiro-acesso.vue
+++ b/src/pages/primeiro-acesso.vue
@@ -1,8 +1,10 @@
@@ -224,7 +237,7 @@ const labelCanal = { EMAIL: 'E-mail', SMS: 'SMS', WHATSAPP: 'WhatsApp' }
Você já pode acessar o portal com seu CPF/CNPJ e a nova senha.