trilium/src/services/session_secret.js
2018-01-28 22:18:15 -05:00

29 lines
762 B
JavaScript

"use strict";
const fs = require('fs');
const crypto = require('crypto');
const dataDir = require('./data_dir');
const log = require('./log');
const sessionSecretPath = dataDir.TRILIUM_DATA_DIR + "/session_secret.txt";
let sessionSecret;
function randomValueHex(len) {
return crypto.randomBytes(Math.ceil(len / 2))
.toString('hex') // convert to hexadecimal format
.slice(0, len).toUpperCase(); // return required number of characters
}
if (!fs.existsSync(sessionSecretPath)) {
sessionSecret = randomValueHex(64);
log.info("Generated session secret");
fs.writeFileSync(sessionSecretPath, sessionSecret, 'ASCII');
}
else {
sessionSecret = fs.readFileSync(sessionSecretPath, 'ASCII');
}
module.exports = sessionSecret;