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:
- django : Instalación de Django
- djangorestframework_simplejwt:
pip install djangorestframework_simplejwt
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