1. Utilitários
Documentação - Autenticar.me
  • Como começar
    • Introdução
    • Configuração em Projeto
  • Componentes
    • Login
    • Cadastro
    • Logout
    • Perfil de usuário
    • Troca automática
  • Layout
    • Autenticado
    • Não autenticado
  • Composables
    • Funções reutilizáveis
  • Cenários
    • Casos de uso
  • Utilitários
    • Tipos Typescript
    • Funções de aplicação
    • Verificação de usuário válido
  1. Utilitários

Verificação de usuário válido

Verificação Periódica de Autenticação#

O pacote inclui um sistema automático de verificação de autenticação que monitora o estado de login do usuário a cada 3 segundos. Se a sessão expirar ou o usuário for deslogado no servidor, o logout é executado automaticamente e um evento é emitido.

Como Funciona#

Após o login, a verificação inicia automaticamente
A cada 3 segundos, faz uma requisição à rota de perfil do usuário
Se a requisição falhar (token inválido, sessão expirada, etc.):
Executa logout automático
Limpa os dados do usuário
Remove tokens dos cookies
Emite evento de logout

Capturando o Evento de Logout#

Use o método onLogout() do composable useAtm() para registrar callbacks que serão executados quando o logout ocorrer (manual ou automático):
<template>
  <div>
    <h1>Minha Aplicação</h1>
    <UserProfile />
  </div>
</template>

<script setup>
import { onMounted, onUnmounted } from 'vue'
import { useAtm } from '@autenticar-me/vue'
import { useRouter } from 'vue-router'

const { onLogout } = useAtm()
const router = useRouter()

onMounted(() => {
  const unsubscribe = onLogout(() => {
    console.log('Usuário foi deslogado')
    router.push('/login')
  })

  onUnmounted(() => {
    unsubscribe()
  })
})
</script>

Exemplo com Notificação ao Usuário#

<script setup>
import { onMounted, onUnmounted } from 'vue'
import { useAtm } from '@autenticar-me/vue'
import { useRouter } from 'vue-router'

const { onLogout } = useAtm()
const router = useRouter()

onMounted(() => {
  const unsubscribe = onLogout(() => {
    alert('Sua sessão expirou. Por favor, faça login novamente.')
    router.push('/login')
  })

  onUnmounted(() => {
    unsubscribe()
  })
})
</script>

Controle Manual do Polling#

Caso precise controlar manualmente quando o polling inicia ou para:
<script setup>
import { onMounted, onUnmounted } from 'vue'
import { useAuth } from '@autenticar-me/vue'

const { startAuthPolling, stopAuthPolling } = useAuth()

onMounted(() => {
  startAuthPolling()
})

onUnmounted(() => {
  stopAuthPolling()
})
</script>
Nota: Na maioria dos casos, não é necessário controlar manualmente o polling, pois ele inicia automaticamente após o login e para automaticamente no logout.
Página anterior
Funções de aplicação
Built with