Ответ 1
Чтобы сгенерировать секрет программно, вы можете использовать node crypto.randomBytes()
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);
});
Что касается сохранения этого, вы абсолютно правы, вы определенно не должны хранить секреты в своем исходном контроле. Лучшим способом было бы загрузить такую конфиденциальную информацию из переменных окружения, например process.env.MY_SECRET
.
Другой менее распространенный шаблон, который я видел, - загрузить секреты из файла, хранящегося отдельно от вашего кода. Возможно, ваше приложение node ищет файл JSON в ~/.myapp/secrets.json
, например.