Skip to content
stallumPublic

About

This is a AuthAPI maded in fastAPI for use in some projects

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

Repository files navigation

AuthAPI - Frontend

Um frontend responsivo e moderno para a API de autenticação AuthAPI.

Recursos

✨ Funcionalidades:

  • ✅ Página de login responsiva
  • ✅ Formulário de registro com validação
  • ✅ Dashboard com informações do usuário
  • ✅ Exibição e cópia de token JWT
  • ✅ Persistência de dados no LocalStorage
  • ✅ Validação em tempo real de formulários
  • ✅ Design responsivo para mobile, tablet e desktop
  • ✅ Suporte a modo escuro
  • ✅ Transições e animações suaves
  • ✅ Gerenciamento de senhas com toggle

Estrutura de Pastas

frontend/
├── index.html          # Página principal
├── css/
│   └── styles.css      # Estilos responsivos
└── js/
    └── app.js          # Lógica da aplicação

Requisitos

  • Navegador moderno (Chrome, Firefox, Safari, Edge)
  • API AuthAPI rodando em http://localhost:8000

Como Usar

1. Iniciar a API

cd ..
python -m uvicorn main:app --reload

A API estará disponível em http://localhost:8000

2. Abrir o Frontend

Simplesmente abra o arquivo index.html em seu navegador:

# Opção 1: Abrir diretamente
start index.html

# Opção 2: Usar um servidor local (recomendado)
python -m http.server 8080
# Acesse http://localhost:8080/frontend

Como Funciona

Fluxo de Login

  1. Digite suas credenciais (email e senha)
  2. Clique em "Entrar"
  3. O frontend envia uma requisição POST para /token
  4. Ao receber o token, o sistema salva no localStorage
  5. O usuário é redirecionado para o dashboard

Fluxo de Registro

  1. Preencha os dados pessoais
  2. Confirme sua senha
  3. Concorde com os termos
  4. Clique em "Cadastrar"
  5. Após sucesso, você é redirecionado para login

Dashboard

Após fazer login, você terá acesso a:

  • ✅ Nome e email do usuário
  • ✅ Status da conta
  • ✅ Token JWT (mostrar/ocultar)
  • ✅ Copiar token para clipboard
  • ✅ Botão para sair

Configuração de CORS

A API foi configurada para aceitar requisições do frontend. Se você precisar mudar a origem permitida, edite em main.py:

app.add_middleware(
    CORSMiddleware,
    allow_origins=["http://localhost:3000"],  # Altere conforme necessário
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

Endpoints Utilizados

Método Endpoint Descrição
POST /token Login e geração de token
POST /users/ Registro de novo usuário
GET /users/me Obter dados do usuário autenticado

Validações

Login

  • ✅ Email obrigatório
  • ✅ Senha obrigatória (mín. 8 caracteres)

Registro

  • ✅ Nome obrigatório (mín. 3 caracteres)
  • ✅ Email obrigatório e válido
  • ✅ Senha obrigatória (mín. 8 caracteres)
  • ✅ Confirmação de senha deve corresponder
  • ✅ Aceitar termos é obrigatório

Design Responsivo

O frontend é totalmente responsivo com breakpoints para:

  • 📱 Mobile (até 480px)
  • 📱 Smartphone (até 768px)
  • 💻 Tablet (até 1024px)
  • 🖥️ Desktop (acima de 1024px)

Otimizações por dispositivo:

  • Ajuste automático de padding e margens
  • Tamanhos de fonte adaptáveis
  • Botões otimizados para toque
  • Layout responsivo sem scroll horizontal

Armazenamento Local

O frontend utiliza localStorage para persistir:

  • accessToken - Token JWT do usuário
  • email - Email do usuário (para preenchimento automático)

Nota: Ao fazer logout, esses dados são limpos automaticamente.

Segurança

⚠️ Considerações importantes:

  1. LocalStorage: O token é armazenado em localStorage. Para produção, considere usar cookies HTTP-only.
  2. CORS: Configure as origens permitidas apropriadamente em produção.
  3. HTTPS: Sempre use HTTPS em produção.
  4. Variáveis de Ambiente: Adicione a URL da API a um arquivo .env (não versionado).

Modo Escuro

O frontend detecta automaticamente a preferência de modo escuro do sistema via prefers-color-scheme e adapta o tema conforme necessário.

Recursos Avançados

  • 🎨 CSS personalizado com variáveis CSS
  • ⚡ Transições suaves com cubic-bezier
  • 🎯 Validação em tempo real sem biblioteca externa
  • 📱 Touch-friendly com espaçamento adequado
  • ♿ Acessibilidade com suporte a motion preferences

Troubleshooting

"Erro ao conectar com o servidor"

Verifique se:

  1. A API está rodando em http://localhost:8000
  2. O CORS está habilitado na API
  3. Não há firewall bloqueando a conexão

Token expira muito rápido

Altere a variável de ambiente ACCESS_TOKEN_EXPIRE_MINUTES em seu arquivo .env

Email já cadastrado

Use um email diferente ou acesse com o email/senha corretos

Contribuindo

Para melhorias e sugestões, abra uma issue ou pull request!

Licença

Veja o arquivo LICENSE para mais informações.

About

This is a AuthAPI maded in fastAPI for use in some projects

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages