Casi cualquier aplicación web, debe contar entre sus características con una gestión de usuarios que permitan que estos ser registren, se validen y cierren su sesión en ella.
En este caso, Django Rest Framework, nos aporta una serie de herramientas que hace que la implementación de un sistema de login/logout y registro de usuario, será sencilla.
Vamos a verlo paso a paso y en diversas entradas que irán aumentando la complejidad del sistema.
Configurando Django
Daré por supuesto que tenemos un sistema que nos permita instalar y gestionar Django. Hay un par de dependencias que necesitamos para poder montar nuestra gestión de usuarios:
pip install djangorestframework
pip install djangorestframework_simplejwt
Una vez instaladas, en el fichero settings.py llamaremos a las aplicaciones correspondientes:
INSTALLED_APPS = [
....
# APLICACIONES DE TERCEROS
'rest_framework',
....
]
Y configuraremos la autenticación a través de JWT
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
}
Hecho esto, quedará simplemente añadir las urls que monta automáticamente el servicio para poder acceder a la API y validar el usuario, cosa que configuraremos en el fichero urls.py:
from rest_framework_simplejwt import views as jwt_views
urlpatterns = [
...
# URLS DEL ENDPOINT PARA EL LOGIN
path('api/token/', jwt_views.TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/refresh/', jwt_views.TokenRefreshView.as_view(), name='token_refresh'),
....
]
Probando el acceso a la API
En estos momento, ya podemos accede a la API a través de la propia interface que proporciona DRF para comprobar la validación de un usuario que tengamos creado y ver como nos devuelve los token de acceso y el refresh.

Si usamos el nombre de usuario y contraseña del usuario que tenemos creado en el formulario anterior, nos devolverá los tokens, señal de que la configuración sido correcta.

También podemos usar Postman para verificar la conexión a la API y hacer la llamada al login, usando un json

De esta forma, hemos obtenido un sistema simple que nos permite validar un usuario y devolver un token access y un token refresh, si la conexión ha sido exitosa.
En el siguiente post, veremos como implementar un sistema de blacklists, que nos permitirá gestionar adecuadamente los tokens para poder hacer el logout de forma correcta.
1 comentario