Este projeto tem como objetivo demonstrar a implementação de autenticação baseada em JWT (JSON Web Token) tanto no Django quanto no FastAPI no backend, com o frontend desenvolvido em React. O sistema permite o login de um usuário, a geração de tokens JWT (access_token
e refresh_token
) e a autenticação de rotas protegidas, além de permitir a renovação do token de acesso.
-
Backend:
- Django com
djangorestframework-simplejwt
para autenticação com JWT. - FastAPI com
fastapi-jwt-auth
para autenticação com JWT.
- Django com
-
Frontend:
- React para interação com a API.
- Axios para comunicação com o backend.
-
Login: O usuário envia as credenciais (nome de usuário e senha) para obter um token de acesso e um token de atualização (refresh token).
-
Acesso a rotas protegidas: O usuário pode acessar rotas protegidas, enviando o token de acesso no cabeçalho da requisição HTTP.
-
Renovação do Token: O
refresh_token
é utilizado para renovar oaccess_token
quando ele expira.
-
Django:
- Navegue até o diretório do Django.
- Instale as dependências:
pip install -r requirements.txt
- Execute as migrações:
python manage.py migrate
- Inicie o servidor Django:
python manage.py runserver
-
FastAPI:
- Navegue até o diretório do FastAPI.
- Instale as dependências:
pip install -r requirements.txt
- Inicie o servidor FastAPI:
uvicorn main:app --reload
- Navegue até o diretório do frontend:
cd frontend
- Instale as dependências:
npm install
- Inicie o servidor React:
npm start
O frontend estará disponível em http://localhost:3000, e o backend em http://localhost:8000 para Django e FastAPI.
Backend: Django, FastAPI, djangorestframework, djangorestframework-simplejwt, fastapi-jwt-auth Frontend: React, Axios JWT: JSON Web Tokens para autenticação
├── backend
│ ├── django
│ │ ├── api
│ │ ├── poetry.lock
│ │ └── pyproject.toml
│ ├── fastapi_project
│ └── requirements.txt
└── frontend
├── public
├── src
├── package.json
└── node_modules
Este projeto foi desenvolvido para demonstrar a implementação de autenticação JWT em aplicações Django, FastAPI e React.
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para mais detalhes.
This project aims to demonstrate the implementation of JWT (JSON Web Token) authentication in both Django and FastAPI backends, with the frontend developed in React. The system allows user login, the generation of JWT tokens (access_token
and refresh_token
), authentication of protected routes, and the ability to refresh the access token.
-
Backend:
- Django with
djangorestframework-simplejwt
for JWT-based authentication. - FastAPI with
fastapi-jwt-auth
for JWT-based authentication.
- Django with
-
Frontend:
- React for interacting with the API.
- Axios for backend communication.
-
Login: The user sends credentials (username and password) to receive an access token and a refresh token.
-
Access protected routes: The user can access protected routes by sending the access token in the HTTP request header.
-
Token Renewal: The
refresh_token
is used to renew theaccess_token
when it expires.
-
Django:
- Navigate to the Django project directory.
- Install dependencies:
pip install -r requirements.txt
- Run migrations:
python manage.py migrate
- Start the Django server:
python manage.py runserver
-
FastAPI:
- Navigate to the FastAPI project directory.
- Install dependencies:
pip install -r requirements.txt
- Start the FastAPI server:
uvicorn main:app --reload
- Navigate to the frontend directory:
cd frontend
- Install dependencies:
npm install
- Start the React server:
npm start
The frontend will be available at http://localhost:3000, and the backend will be available at http://localhost:8000 for both Django and FastAPI.
Technologies Used
Backend: Django, FastAPI, djangorestframework, djangorestframework-simplejwt, fastapi-jwt-auth Frontend: React, Axios JWT: JSON Web Tokens for authentication
├── backend
│ ├── django
│ │ ├── api
│ │ ├── poetry.lock
│ │ └── pyproject.toml
│ ├── fastapi_project
│ └── requirements.txt
└── frontend
├── public
├── src
├── package.json
└── node_modules
This project was developed to demonstrate the implementation of JWT authentication in Django, FastAPI, and React applications.
This project is licensed under the MIT License - see the LICENSE file for details.