Estoy trabajando en una API usando Node y Express, con una base de datos Mongo. Mis usuarios pueden autenticarse utilizando una ruta y obtienen un JWT a cambio.
Quiero implementar un mecanismo de seguridad para proteger dichos tokens. Es decir, quiero que los tokens se revoquen automáticamente cuando un usuario cambie su contraseña y proporcione un botón "Revocar todas las aplicaciones", que anularía el todos tokens creados.
Para hacerlo, agregué un nonce en el cuerpo de JWT, que es un UUID v4 aleatorio. Cuando el usuario cambia su contraseña o hace clic en el botón, se genera un nuevo UUID, lo que provoca una revocación de facto de todos los tokens, ya que el cuerpo del JWT no coincidirá con lo que viene de la base de datos.
¿Es este un buen enfoque? No puedo pensar en una forma en que esto se rompería, ¿hay algo que haya pasado por alto?