Registro, login y logout de usuarios con Django Rest Framework y JWT (parte I)

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.

Publicada el
Categorizado como Desarollo

Por Jose Manuel Sanz Prieto

Desarrollador web. En este blog hablo de fotografía, programación con Django, Python, PHP y privacidad.

1 comentario

Dejar un comentario

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