Contexto
Estoy creando un juego MMO en HTML5 con lienzo. Utilizo NodeJS en el servidor & JS desde cero en el cliente. También utilizo socket.io para administrar en tiempo real. El juego es persistente y amp; cada jugador mantiene su equipo / habilidades, etc., incluso después de cerrar la sesión. Para hacer eso, el jugador debe registrarse con el correo electrónico y la contraseña y luego iniciar sesión. El cliente es un navegador, pero podría ser otro dispositivo como un teléfono en el futuro. Uso HTTPS para cifrar la comunicación.
Problema
En este contexto, decido utilizar un sistema de autenticación basado en token. Miro a JWT de Auth0 y encontré: enlace
Me di cuenta: están hablando de la implementación JWS de JWT y no de JWE. Después de ver enlace vi que era lo mismo, JWS y no JWE. Supongo que el módulo JWT desarrollado por Auth0 no proporciona una implementación JWE de JWT sino solo una implementación JWS.
- ¿Tengo razón o me perdí algo? En mi caso particular (escenario del juego), no sé si es obligatorio cifrar con JWE (no creo que se pasen datos confidenciales en el token), ¿crees que JWS es suficiente?
En el lado de esta investigación, revisé el pasaporte ( enlace ). Leí la documentación pero no encontré información sobre cómo realizan la autenticación cuando eliminamos la sesión ( enlace ).
Intenté implementarlo con session: false
pero no se devolvió ningún token.
- Supuse que debía implementarlo yo solo, pero en este caso, ¿cuál es el objetivo del pasaporte para una autenticación basada en token?
Luego, la última pregunta sobre socket.io
- Si implemento una autenticación basada en token JWS para firmar mi solicitud & HTTPS para cifrar la comunicación, ¿cómo puedo asegurar la comunicación bidireccional? Se parece a dos canales de comunicación diferentes, ¿es fácil de implementar con socket.io?