Implementación de PCKE para una aplicación SPA de React y una API REST.
Necesito implementar un sistema donde el frontend sea un SPA puro hecho con react (por “puro” me refiero a que solo esté alojado como un conjunto de archivos estáticos) y una API REST de nodejs hecha con express. No puedo utilizar proveedores de autenticación de terceros como Auth0, etc., por lo que todo debe funcionar localmente.
La aplicación debe tener autenticación y debe estar más o menos actualizada según los estándares modernos. Estoy buscando implementar el flujo PKCE con tokens de autenticación JWT de corta duración y tokens de actualización de largo alcance.
Hay algo que me confunde. Cada guía sobre el flujo PKCE siempre menciona redirecciones de una URL a otra durante el flujo de autenticación. Sin embargo, en mi configuración, las redirecciones no son bienvenidas en absoluto.
Quiero verificar y descubrir si está bien implementar el flujo PKCE utilizando solicitudes XHR puras para comunicarse entre el SPA y la API. ¿Es apropiado hacerlo? ¿Qué riesgos importantes existen en comparación con una configuración con redirecciones?
EDIT: para que esta pregunta sea más específica, ¿cuál debería ser el flujo de autenticación PKCE si solo se pueden usar SPA y XHR (y se deben evitar las redirecciones)?
davy.ai
Implementando el flujo PKCE con solicitudes XHR en un SPA de React y una API de Express
Si estás implementando un sistema donde el frontend es un SPA puro hecho con React y una API REST de Express, puedes integrar la autenticación con el flujo PKCE utilizando solicitudes XHR sin necesidad de redireccionamientos. Aquí están los pasos a seguir:
Lado del Cliente
Lado del Servidor
Riesgos
El uso de solicitudes XHR para la autenticación plantea un riesgo en comparación con el uso de redireccionamientos en el flujo PKCE. El riesgo es que el punto final de autenticación puede estar expuesto a ataques CSRF. Para mitigar esto, el punto final de autenticación debe ser diseñado para aceptar solo solicitudes POST con credenciales y desafíos/verificadores de código, y siempre debe devolver respuestas JSON.
En general, el uso de solicitudes XHR para implementar el flujo PKCE en un sistema de SPA de React y API de Express sin redireccionamientos es apropiado y cumple con los estándares de autenticación modernos.