es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema de arquitectura en la API de autenticación de Laravel User

Me encontré con una “buena pregunta práctica” cuando intentaba escribir una API para un usuario autenticado.

Entonces, si no estoy escribiendo una SPA, necesito una API para hacer solicitudes axios (por ejemplo) para obtener los datos del usuario autenticado. Y me quedé un poco atascado.

Si pongo todas las rutas de datos de usuario en web.php, entonces mi controlador se verá obligado a devolver JSON para que Vue analice los datos, lo cual no es realmente una buena práctica para las rutas de web.php.

Si pongo todas las rutas de datos de usuario en api.php, entonces es una buena práctica devolver JSON desde los controladores, pero no podré obtener un usuario autenticado simplemente con auth()->user(), porque api.php no utiliza una sesión de usuario autenticado. Entonces me veo obligado a poner un token de sanctum para cada solicitud de la API, lo cual es un poco:
1. molesto
2. no es posible al renderizar una página completa con Vue
3. puede considerarse una mala práctica
4. se puede evitar simplemente colocando todas las rutas en web.php

Entonces, ¿cuál es tu opinión sobre dónde poner ese tipo de rutas?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnologías de la información especializado en php, laravel, api y laravel-sanctum, recomendaría colocar todas las rutas de datos de usuario en api.php y utilizar tokens de sanctum para la autenticación. Aunque pueda parecer molesto y potencialmente una mala práctica requerir tokens para cada solicitud, es un método de autenticación más seguro, especialmente para APIs.

    Para abordar la preocupación de renderizar páginas completas con Vue, sugeriría utilizar la directiva @auth de Laravel para cargar solo los componentes relevantes de Vue si el usuario está autenticado. De esta manera, aún puede disfrutar de los beneficios de Vue sin comprometer la seguridad.

    En general, es una buena práctica separar las rutas web y las rutas de la API, y utilizar tokens de sanctum para la autenticación puede proporcionar una capa adicional de seguridad para las solicitudes de API.

Comments are closed.