simple node jsonwebtoken basada autenticacion node.js security express jwt json-web-token

node.js - jsonwebtoken - login node js mongodb



JWT: ¿Qué es una buena clave secreta y cómo almacenarla en una aplicación Node.js/Express? (1)

Para generar un programatically secreto, podrías usar crypto.randomBytes() del nodo

var crypto = require(''crypto''); var jwt = require(''jsonwebtoken''); crypto.randomBytes(256, function(ex, buf) { if (ex) throw ex; var token = jwt.sign({foo: ''bar''}, buf); var decoded = jwt.verify(token, buf); });

En cuanto a almacenar esto, tiene toda la razón, definitivamente no debe almacenar secretos en su control de origen. Una forma mejor sería cargar información tan sensible de las variables de entorno, por ejemplo, process.env.MY_SECRET .

Otro patrón menos común que he visto es cargar secretos de un archivo almacenado por separado de su código. Puede hacer que su aplicación de nodo busque un archivo JSON en ~/.myapp/secrets.json por ejemplo.

En primer lugar, ¿cuál es un buen método para generar una clave secreta? Debería presionar un montón de teclas al azar en mi teclado para generar una, pero debe haber una mejor solución para esto. Explica la forma de generar una muy buena clave.

En segundo lugar, ¿cuál es una buena forma de almacenar la llave? Podría escribir la clave en la configuración de mis aplicaciones, pero eso significa que un compromiso del código fuente comprometerá todo el sistema. ¿Cuál es la mejor manera de almacenar la clave secreta en una aplicación Node.js Express?