Este proyecto es una API REST con autenticación basada en JWT (JSON Web Token). Desarrollada con Django REST Framework.
El proyecto permite registrar usuarios mediante una solicitud POST, retornando un token si los datos proporcionados en el JSON son válidos. Ademas tiene una ruta de "login/" para poder obtener nuevamente el token si las credenciales (en este caso, username y password) son correctos. Dicho token se utiliza para acceder a rutas protegidas como "profile/".
Para poder iteracturar con el proyecto se necesita una herramienta como Postman, Thunder client (extension de VsCode), etc.
Lo primero es crear un usuario, para eso se utiliza el metodo POST en la ruta "http://127.0.0.1:8000/register/"
Se envia un JSON con la informacion para registrar un usuario de la siguiente manera:
{
"username": "usuario",
"password": "test123",
"email": "example@example.com"
}Luego dara la siguiente Respuesta:
Status Code: 201 Created
{
"token": "930ebe56865465c20f1c044e4c5d92ca49b47306",
"user": {
"id": 6,
"username": "usuario",
"email": "example@example.com",
"password": "test123"
}
}y de esa forma se pueden crear usuarios.
Ejemplo con Postman:
Para obtener el token, se utiliza el metodo POST en la ruta "http://127.0.0.1:8000/login/"
Se envia en el body, un json son la informacion de un usuario registrado(en este caso se esta validado con el username y el password)
JSON enviado:
{
"username": "usuario",
"password": "test123"
}Respuesta:
Status Code: 200 Ok
{
"token": "930ebe56865465c20f1c044e4c5d92ca49b47306",
"user": {
"id": 6,
"username": "usuario",
"email": "example@example.com",
"password": "pbkdf2_sha256$1000000$zeTysVUtZoYfHFyJfwpC4F$nft+OogeakDcNPTCqZnBsmjRdJjf4hRDDJGHqE7fcl8="
}
}Ejemplo con Postman:
Para acceder a rutas protegidas, se tiene que colocar el token obtenido desde "login/" en las cabeceras (Headers) de la siguiente forma:
key value
Authorization Token 930ebe56865465c20f1c044e4c5d92ca49b47306
Entonces, se envia el token del usuario en las cabeceras (headers) a la siguiente url: "http://127.0.0.1:8000/profile/"
Headers:
key value
Authorization Token 930ebe56865465c20f1c044e4c5d92ca49b47306
Respuesta:
Status Code: 200 Ok
{
"id": 6,
"username": "usuario",
"email": "example@example.com",
"password": "pbkdf2_sha256$1000000$zeTysVUtZoYfHFyJfwpC4F$nft+OogeakDcNPTCqZnBsmjRdJjf4hRDDJGHqE7fcl8="
}Ejemplo con Postman:
-
Si no se proporciona el token
{ "detail": "Authentication credentials were not provided." } -
Si se proporciona un token no valido
{ "detail": "Invalid token." }
Requisitos:
- Tener Docker desktop instalado, y poder ejecutar docker compose.
git clone https://github.com/Harold875/drf-jwt.git
cd drf-jwt/Luego
docker compose upy ya estaria funcionando el proyecto en el "http://127.0.0.1:8000/" o "http://localhost:8000/"
Requisitos:
- Tener venv
- Tener python 3.12+
Clonar el repositorio
git clone https://github.com/Harold875/drf-jwt.git
cd drf-jwt/Activar ambiente virtual
python3 -m venv venv
source venv/bin/activateInstalar dependencias
pip install -r requirements.txtAplicar migraciones e iniciar el servidor de desarrollo
python manage.py migrate
python manage.py runservery con esto ya estaria funcionando el proyecto en el "http://127.0.0.1:8000/" o "http://localhost:8000/"


