como usar la biblioteca django graphql jwt para autenticacion jwt en django graphene

Cómo usar la biblioteca Django-Graphql-Jwt para autenticación JWT en Django Graphene

Tabla de Contenidos

Usando la biblioteca Django-Graphql-Jwt para autenticación JWT en Django Graphene

Para autenticar a los usuarios en tu aplicación Django Graphene utilizando tokens JWT (JSON Web Tokens), puedes utilizar la biblioteca Django-Graphql-Jwt. En este artículo, te mostraremos cómo instalar y configurar esta biblioteca en tu proyecto Django.

1. Instalación

Para comenzar, debes instalar la biblioteca Django-Graphql-Jwt utilizando pip:

pip install django-graphql-jwt

2. Configuración del proyecto

Después de instalar la biblioteca, debes agregar el middleware y el parámetro de configuración en tu archivo settings.py:

MIDDLEWARE = [
# ...
'graphql_jwt.middleware.JSONWebTokenMiddleware',
]
GRAPHQL_JWT = {
'JWT_SECRET_KEY': 'mi_clave_secreta',
'JWT_ALGORITHM': 'HS256',
}

3. Configuración del esquema de GraphQL

A continuación, debes agregar la autenticación JWT al esquema de GraphQL en tu archivo schema.py:

from graphene_django.types import DjangoObjectType
from graphene import ObjectType, String, Boolean, ID, InputObjectType, register_enum_type
from graphene_jwt_auth import JSONWebTokenAuth
from django.contrib.auth.models import User

class UserType(DjangoObjectType):
class Meta:
model = User

class Query(ObjectType):
me = JSONWebTokenAuth.Field(UserType)

@JSONWebTokenAuth.permission_classes([JSONWebTokenAuth.permissions.IsAuthenticated])
def my_private_data(self, info):
return {'message': 'Bienvenido!'}

4. Creación de mutaciones para la autenticación

Por último, debes crear mutaciones para la autenticación y la renovación de tokens JWT en tu archivo schema.py:

class Mutation(ObjectType):
login = JSONWebTokenAuth.Mutation.obtain_and_return_auth_token
refresh_token = JSONWebTokenAuth.Mutation.refresh_token

5. Creación de una vista para la autenticación

Finalmente, debes crear una vista para la autenticación de usuarios en tu archivo views.py:

from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from graphene_jwt_auth import ObtainJSONWebToken, RefreshJSONWebToken

class ObtainJSONWebTokenView(ObtainJSONWebToken):
serializer_class = MyObtainJSONWebTokenSerializer

class RefreshJSONWebTokenView(RefreshJSONWebToken):
serializer_class = MyRefreshJSONWebTokenSerializer

class MyObtainJSONWebTokenSerializer(ObtainJSONWebTokenSerializer):
@classmethod
def get_user(cls, username):
try:
return User.objects.get(username=username)
except User.DoesNotExist:
raise serializers.ValidationError('Usuario no encontrado')

class MyRefreshJSONWebTokenSerializer(RefreshJSONWebTokenSerializer):
pass

Espero que estos pasos te ayuden a integrar la autenticación JWT en tu aplicación Django Graphene utilizando la biblioteca Django-Graphql-Jwt. ¡Buena suerte con tu proyecto!

Si quieres conocer otros artículos parecidos a Cómo usar la biblioteca Django-Graphql-Jwt para autenticación JWT en Django Graphene puedes visitar la categoría Python.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tu puntuación: Útil

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Subir