Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sample Flask Auth

API REST desenvolvida com Flask para demonstrar um fluxo básico de autenticação utilizando sessões, controle de acesso por perfis de usuário e persistência de dados com SQLite e SQLAlchemy.

O projeto implementa cadastro, autenticação, consulta, atualização e remoção de usuários, utilizando Flask-Login para gerenciamento de sessão e bcrypt para armazenamento seguro de senhas.


✨ Funcionalidades

  • Cadastro de usuários.
  • Login utilizando usuário e senha.
  • Logout de usuários autenticados.
  • Gerenciamento de sessão com Flask-Login.
  • Criptografia de senhas utilizando bcrypt.
  • Consulta de usuários autenticados.
  • Atualização de senha.
  • Exclusão de usuários.
  • Controle de acesso baseado em papéis (roles).

🚀 Tecnologias utilizadas

Tecnologia Finalidade
Python Linguagem principal
Flask Framework Web
Flask-SQLAlchemy ORM
Flask-Login Autenticação e gerenciamento de sessão
SQLite Banco de dados
bcrypt Hash de senhas

📦 Estrutura do projeto

sample-flask-auth/
├── app.py
├── database.py
├── requirements.txt
├── models/
│   └── user.py
└── README.md

Organização

Arquivo/Pasta Descrição
app.py Configuração da aplicação e definição das rotas
database.py Inicialização do SQLAlchemy
models/user.py Modelo da entidade Usuário
requirements.txt Dependências do projeto

⚙️ Pré-requisitos

Antes de executar o projeto, instale:

  • Python 3.10 ou superior (versão exata não informada)
  • pip
  • Ambiente virtual (recomendado)

🔧 Instalação

Clone o repositório:

git clone <URL_DO_REPOSITORIO>

Entre na pasta:

cd sample-flask-auth

Crie um ambiente virtual:

Linux/macOS

python -m venv venv
source venv/bin/activate

Windows

python -m venv venv
venv\Scripts\activate

Instale as dependências:

pip install -r requirements.txt

▶️ Como executar

Execute a aplicação:

python app.py

Por padrão a API ficará disponível em:

http://localhost:5000

🧪 Testes

Não foram encontrados testes automatizados.


📚 API

Autenticação

Método Rota Descrição
POST /login Realiza autenticação
GET /logout Encerra a sessão do usuário

Usuários

Método Rota Descrição
POST /user Cadastra um novo usuário
GET /user/{id} Consulta um usuário
PUT /user/{id} Atualiza a senha do usuário
DELETE /user/{id} Remove um usuário

Exemplo de criação de usuário

POST /user
Content-Type: application/json
{
  "username": "admin",
  "password": "123456"
}

Exemplo de login

POST /login
Content-Type: application/json
{
  "username": "admin",
  "password": "123456"
}

🌎 Variáveis de ambiente

Atualmente as configurações estão definidas diretamente no código.

Variável Valor atual Observação
SECRET_KEY Definida em app.py Recomenda-se mover para variável de ambiente
SQLALCHEMY_DATABASE_URI sqlite:///database.db Recomenda-se utilizar .env

📄 Dependências

As principais dependências do projeto são:

Biblioteca Versão
Flask 2.3.0
Flask-SQLAlchemy 3.1.1
Flask-Login 0.6.2
Werkzeug 2.3.0

📌 Roadmap

  • Implementar autenticação via JWT.
  • Adicionar refresh token.
  • Criar documentação Swagger/OpenAPI.
  • Implementar migrações utilizando Flask-Migrate.
  • Adicionar validação de entrada.
  • Criar testes automatizados.
  • Implementar Blueprints.
  • Adicionar paginação.
  • Implementar recuperação de senha.
  • Criar sistema de cadastro de administradores.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages