Vou atualizar o código para lidar corretamente com o formato do token JWT fornecido. Vamos ajustar a forma como o token é armazenado e enviado nas requisições.
Fiz várias atualizações para lidar corretamente com o formato do token JWT que você forneceu:
Adicionei funções para decodificar o token JWT e extrair informações importantes:
decodeToken: Decodifica o payload do token para acessar informações como sub (usuário), exp (expiração) e role (papel)isTokenExpired: Verifica se o token está expirado comparando o timestamp de expiração com o tempo atualgetUserRole: Extrai o papel/role do usuário a partir do tokenImplementei verificações de expiração do token em vários pontos:
Agora o sistema pode usar informações diretamente do token quando necessário:
sub) quando os dados completos do usuário não estão disponíveisMelhorei o tratamento de erros relacionados ao token:
Estas alterações garantem que o sistema funcione corretamente com o formato de token JWT fornecido, mantendo a segurança e a experiência do usuário.
Vou remover todos os dados simulados e arquivos não utilizados do projeto, mantendo apenas o que é essencial e funcional.
components/dashboard-stats.jsx - Estatísticas simuladas do dashboardcomponents/recent-documents.jsx - Lista de documentos recentes simuladoscomponents/new-document-dialog.jsx - Dialog de criação de documento com dados simuladoscomponents/new-sector-dialog.jsx - Dialog de criação de setor com dados simuladoscomponents/notifications-dropdown.jsx - Dropdown de notificações com dados simuladoscomponents/date-picker.jsx - Componente de seleção de data não utilizadocomponents/data-fetching-example.jsx - Exemplo de busca de dados não utilizadocomponents/auth-provider.jsx - Provider de autenticação substituído pelo hook useAuthlib/store.js - Store Jotai não utilizadoapp/setores/[id]/page.jsx - Página de detalhes do setor com dados simuladosapp/setores/[id]/loading.jsx - Loading da página de detalhes do setorO projeto agora está limpo, focado apenas nas funcionalidades essenciais e pronto para integração completa com a API real. Todos os componentes mantêm sua estrutura visual mas aguardam dados reais da API para exibição.