Estoy creando un back-end de API REST para una aplicación móvil. En nuestra elección de diseño, decidimos dejar que los proveedores de OAuth2 se encarguen de la seguridad de inicio de sesión.
Sin embargo, no estoy seguro de cuál es la mejor práctica para el token de acceso, que obtengo de los proveedores de OAuth2.
La situación es que recibo un token de acceso del proveedor de OAuth2 cuando el usuario inicia sesión. Necesitaré usar este token, cada vez que la aplicación móvil realice una solicitud a mi back-end. Así que puedo validar contra el proveedor OAuth2, para ver si el token sigue siendo válido.
Sé que voy a crear un JWT y entregarlo a la aplicación móvil, que utilizará cada vez que realice una solicitud.
Ahora mi pregunta es si debo almacenar el token de acceso que recibí del proveedor de OAuth2, dentro del JWT como reclamos.
¿O debería almacenarlo en una base de datos y conectarlo con el ID de los usuarios, que almacenaré en las reclamaciones de JWT?
¿Quizás se recomienda que cifre el JWT, con JWE? Si ese es el caso, ¿disminuirá el rendimiento más si descifro para cada solicitud, en lugar de hacer una búsqueda en la base de datos (usaré MongoDB o Redis) o el impacto en el rendimiento será el mismo?
La conexión a mi API REST, será a través de HTTPS.