From b8dbb5869dc0b9d397665dc42eb060dcd4b0c94e Mon Sep 17 00:00:00 2001 From: fabisussuarana Date: Sun, 3 May 2026 13:03:14 -0500 Subject: [PATCH] login redirecionando pra home e acessando home se tiver logado --- app/middleware/auth.ts | 7 +++++++ app/pages/(auth)/criar-conta/index.vue | 1 + app/pages/(auth)/home/index.vue | 11 +++++++++++ app/pages/(auth)/login/index.vue | 21 +++++++++++++++------ 4 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 app/middleware/auth.ts create mode 100644 app/pages/(auth)/home/index.vue diff --git a/app/middleware/auth.ts b/app/middleware/auth.ts new file mode 100644 index 0000000..0e49242 --- /dev/null +++ b/app/middleware/auth.ts @@ -0,0 +1,7 @@ +export default defineNuxtRouteMiddleware(() => { + const token = useCookie('token') + + if (!token.value) { + return navigateTo('/login') + } +}) \ No newline at end of file diff --git a/app/pages/(auth)/criar-conta/index.vue b/app/pages/(auth)/criar-conta/index.vue index a746079..bef60f4 100644 --- a/app/pages/(auth)/criar-conta/index.vue +++ b/app/pages/(auth)/criar-conta/index.vue @@ -107,6 +107,7 @@ async function criarConta({ email, password }) { } $toast.success('Conta criada com sucesso!') + await navigateTo('/login') } catch { $toast.error('Erro ao criar conta. Tente novamente.') } finally { diff --git a/app/pages/(auth)/home/index.vue b/app/pages/(auth)/home/index.vue new file mode 100644 index 0000000..88b9d97 --- /dev/null +++ b/app/pages/(auth)/home/index.vue @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/app/pages/(auth)/login/index.vue b/app/pages/(auth)/login/index.vue index 55127e5..772805b 100644 --- a/app/pages/(auth)/login/index.vue +++ b/app/pages/(auth)/login/index.vue @@ -94,18 +94,27 @@ isLoading.value = true try { const res = await fetch('/auth/login', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ email, password }), + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ email, password }), }) + const data = await res.json() + if (!res.ok) { - const data = await res.json().catch(() => ({})) - $toast.error(data.message ?? 'Erro para efetuar o login. Tente novamente.') - return + const data = await res.json().catch(() => ({})) + $toast.error(data.message ?? 'Erro para efetuar o login. Tente novamente.') + return } + const token = useCookie('token') + if(data) token.value = data.access_token + $toast.success('Login realizado com sucesso!') + + await navigateTo('/home') } catch { $toast.error('Erro para efetuar o login. Tente novamente.') } finally {