Autenticación JWT con Django REST Framework

JSON Web Token es un estándar abierto para transferir datos de forma segura entre partes que utilizan un objeto JSON. JWT se usa para mecanismos de autenticación sin estado para usuarios y proveedores, lo que significa que mantener la sesión está en el lado del cliente en lugar de almacenar sesiones en el servidor. Aquí, implementaremos el sistema de autenticación JWT en Django.

Módulos requeridos:

Configuración básica :

Inicie un proyecto con el siguiente comando:

 django-admin startproject config

Cambiar el directorio a la configuración del proyecto –

 cd config

Inicie el servidor: inicie el servidor escribiendo el siguiente comando en la terminal:

 python manage.py runserver

Para verificar si el servidor se está ejecutando o no, vaya a un navegador web e ingrese http://127.0.0.1:8000/ como URL.

Ahora detenga el servidor presionando

ctrl-c

Vamos a crear una aplicación ahora llamada «aplicación».

python manage.py startapp app

agregando configuración al archivo settings.py:

abra el archivo settings.py en la carpeta de configuración y agregue la configuración.

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    ],
}

edite el archivo urls.py
abra urls.py en la carpeta de configuración

from django.urls import path, include
from rest_framework_simplejwt import views as jwt_views
  
urlpatterns = [
    path('api/token/',
         jwt_views.TokenObtainPairView.as_view(),
         name ='token_obtain_pair'),
    path('api/token/refresh/',
         jwt_views.TokenRefreshView.as_view(),
         name ='token_refresh'),
    path('', include('app.urls')),
]

edite views.py,
abra views.py en la carpeta de la aplicación y cree una vista API

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
  
  
class HelloView(APIView):
    permission_classes = (IsAuthenticated, )
  
    def get(self, request):
        content = {'message': 'Hello, GeeksforGeeks'}
        return Response(content)

edite urls.py
cree un urls.py en la carpeta de la aplicación y edítelo

from django.urls import path
from . import views
  
urlpatterns = [
    path('hello/', views.HelloView.as_view(), name ='hello'),
]

uso:

Para realizar una solicitud HTTP hemos utilizado HTTPie, para instalarlo.

$ sudo apt install httpie

Paso 1:
migre el proyecto, cree un superusuario y un servidor de ejecución

$ python3 manage.py migrate
$ python manage.py createsuperuser
$ python manage.py runserver 4000

Paso 2:
Ahora, necesitamos autenticarnos y obtener el token. que obtendremos en el punto final es
/api/token/

$ http post http://127.0.0.1:4000/api/token/ username=spider password=vinayak

agregue su nombre de usuario y contraseña

Paso 3:
copie el token de acceso y haga una solicitud

$  http http://127.0.0.1:4000/hello/ "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNTg3Mjc5NDIxLCJqdGkiOiIzYWMwNDgzOTY3NjE0ZDgxYmFjMjBiMTBjMDlkMmYwOCIsInVzZXJfaWQiOjF9.qtNrUpyPQI8W2K2T22NhcgVZGFTyLN1UL7uqJ0KnF0Y"

Publicación traducida automáticamente

Artículo escrito por itsvinayak y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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