Closed danirod closed 4 years ago
:speech_balloon: This comment has been generated by the DeepCode bot, installed by the owner of the repository. The DeepCode bot protects your repository by detecting and commenting on security vulnerabilities or other critical issues.
:relaxed: If you want to provide feedback on our bot, here is how to contact us.
SGTM
Este commit agrega un middleware de autenticación basado en JWT a través de la librería jwt-auth, así como controladores para generar, refrescar e invalidar tokens JWT.
El objetivo es disponer de un sistema de autenticación verdaderamente sin estado que se pueda usar en el frontend, incluso si se sirve desde otro dominio en el que no se pueda usar el middleware auth:api por problemas con las cookies cross-origin que este método emplea.
De este modo, ahora el frontend puede disponer de una vista para hacer login que le pide al backend que genere un token JWT. El frontend deberá emplear el token JWT con autenticación Bearer en sucesivas peticiones para que el backend pueda identificar correctamente al usuario y ser una alternativa real a la autenticación por cookie actualmente en uso.
Para generar tokens JWT, será necesario tener una clave privada con la que firmar estos tokens. Para generar la variable de entorno oportuna, en tiempo de desarrollo o despliegue se puede usar el comando
php artisan jwt:secret
para generar un secreto, que será metido en el .env.API expuesta:
Asuntos que quedan por resolver tras este PR:
Una vez que OpenRPG-UI tenga un sistema de login que se nutra de este endpoint, toda la funcionalidad que actualmente hace la aplicación Vue integrada en OpenRPG queda completamente replicada en OpenRPG-UI, por lo que se puede considerar deprecar la versión actual del frontend Vue que hay en OpenRPG y tratar OpenRPG como un repositorio que sólo ofrece una API REST.
Una vez que el frontend Vue que hay en OpenRPG esté deprecado, se puede considerar eliminar el middleware auth:api, y renombrar el middleware auth:jwt por auth:api.
Closes #49