Este repositório contém o serviço de autenticação (auth-service
) de um sistema de lanchonete, responsável por gerenciar a autenticação de usuários, criação de tokens de acesso, e integração com outros serviços do sistema.
O Auth Service é o componente responsável pela autenticação de usuários, incluindo a geração de tokens JWT para autenticação em outros serviços. Ele também oferece endpoints para o gerenciamento de usuários.
- Autenticação de usuários: Geração de tokens JWT para autenticação.
- Cadastro de usuários: Permite que novos usuários se cadastrem no sistema.
- Validação de tokens: Valida se os tokens enviados em requisições são válidos.
- Integração com outros serviços: O Auth Service é consumido por outros serviços para validar a autenticidade de requisições.
- FastAPI: Framework para construir APIs rápidas e eficientes.
- JWT (JSON Web Tokens): Utilizado para geração e validação de tokens de autenticação.
- SQLAlchemy: ORM para interação com o banco de dados.
- PostgreSQL: Banco de dados relacional utilizado para armazenar informações de usuários.
- Docker: Para containerizar a aplicação.
- Pydantic: Para validação de dados e esquemas.
- Python 3.10+
- Docker & Docker Compose (para containers)
- PostgreSQL (para armazenamento de usuários)
Clone o repositório para sua máquina local:
git clone <<url>>
cd auth-service
Crie e ative um ambiente virtual:
python3 -m venv .venv
source .venv/bin/activate # Para macOS/Linux
.venv\Scripts\activate # Para Windows
Instale as dependências do projeto:
pip install poetry
poetry install
O Auth Service utiliza o PostgreSQL como banco de dados. Você pode usar o Docker para rodar uma instância do PostgreSQL localmente.
Execute o seguinte comando para iniciar o PostgreSQL:
docker-compose up -d
Crie um arquivo .env
com as seguintes variáveis:
DATABASE_URL= "<<suaconexão>>"
SECRET_KEY= "<<chave_secreta>>"
# dados do seu user admin
ADMIN_NAME=""
ADMIN_EMAIL=""
ADMIN_CPF=""
ADMIN_PASSWORD=""
DATABASE_URL
: URL de conexão com o banco de dados PostgreSQL.SECRET_KEY
: Chave secreta para assinatura dos tokens JWT.
Execute o comando abaixo para iniciar a aplicação:
docker-compose up --build -d
Isso criará o banco de dados e o serviço.
O servidor estará disponível em http://127.0.0.1:8000
.
A API do Auth Service possui os seguintes endpoints:
POST /token
: Solicita um bearer token.GET /auth
: Valida a autorização do bearer token.POST /customers/admin
: Cria o usuário administrador da aplicaçãoGET /customer/
: Recupera a lista de usuários cadastrados.POST /customer/identify
: Identifica um usuário pelo CPF.POST /customer/register
: Criar o usuário identificado.POST /customer/anonymous
: Criar o usuário anônimo.
Para executar os testes automatizados com pytest
, use o seguinte comando:
pytest
Isso executará todos os testes definidos no repositório.
A suíte de testes também inclui testes unitários para verificar o comportamento das funções e métodos principais.
Para produção, recomenda-se o uso de Docker e Docker Compose para orquestrar os containers de forma eficiente. O arquivo docker-compose.yml
pode ser configurado para criar e gerenciar os containers em um ambiente de produção.
- Construir os containers:
docker-compose up -d --build
- Acessar o serviço em produção
Após o deploy, a API estará acessível no endereço especificado no arquivo docker-compose.yml
.
- Faça o fork deste repositório.
- Crie uma nova branch (
git checkout -b feature/nova-feature
). - Faça suas alterações e commit (
git commit -am 'Adicionando nova feature'
). - Faça o push para a branch (
git push origin feature/nova-feature
). - Abra um pull request.
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para mais detalhes.
Se você encontrar problemas ou tiver dúvidas, sinta-se à vontade para abrir um issue ou fazer uma contribuição!