Esta no es una pregunta de codificación, sino una pregunta general: en Django, si estoy usando autenticación predeterminada (autenticación de sesión en ese caso), ¿qué necesita la interfaz (en mi caso es reaccionar) en este caso? digamos que inicio sesión en el navegador (botón de inicio de sesión desde el lado frontal), ahora va a enviar datos de nombre de usuario y contraseña a django, django va a deserializar los datos y luego autenticarse e iniciar sesión, ahora el problema aquí es que redirijo a otra página donde solo los usuarios autenticados pueden verlo, el problema es que no puedo verlo, simplemente porque Django me identificó como no autenticado, después de un poco de investigación, la respuesta fue porque cada extremo (frontend y backend) tienen puertos diferentes, para poder hacer que funcione, la interfaz necesita acceder a las cookies, supongo, ¿hay algún ejemplo simple para este problema?
La autenticación predeterminada de Django no es lo que busca. En cambio, la forma estándar de autenticación que se usa para que la interfaz se autentique es usar JWT. Django rest framework admite esta función y amplía la autenticación predeterminada para admitir esta forma de autenticación.
Básicamente, al usar JWT, el frontend envía el nombre de usuario y la contraseña al backend, y el backend devuelve un token que es válido durante un tiempo específico después de iniciar sesión. Una vez que el token caduca, se cierra la sesión y debe autenticarse una vez más con su nombre de usuario y contraseña originales.
Si bien el token es válido, solo lo agrega como encabezado en todas las solicitudes que realiza desde su interfaz de esta manera:
authorization: Bearer [Authentication_TOKEN]Aquí hay un enlace a Django Rest Framework:https://www.django-rest-framework.org/api-guide/authentication/ O en caso de que no quiera usar Django Rest Framework, aquí hay otro enlace para ayudarlo con la configuración de JWT en Django: https://thinkster.io/tutorials/django-json-api/authentication
Y aquí hay un enlace sobre cómo agregar encabezados personalizados en axios, como una de las populares bibliotecas de clientes HTTP basadas en Promise: ¿Cómo configurar el encabezado y las opciones en axios?