trilium/src/routes/api/setup.js

27 lines
988 B
JavaScript
Raw Normal View History

2017-12-04 11:29:23 +08:00
"use strict";
const optionService = require('../../services/options');
const sqlInit = require('../../services/sql_init');
2017-12-04 11:29:23 +08:00
const utils = require('../../services/utils');
const myScryptService = require('../../services/my_scrypt');
const passwordEncryptionService = require('../../services/password_encryption');
2017-12-04 11:29:23 +08:00
async function setup(req) {
2017-12-04 11:29:23 +08:00
const { username, password } = req.body;
await optionService.setOption('username', username);
2017-12-04 11:29:23 +08:00
await optionService.setOption('password_verification_salt', utils.randomSecureToken(32));
await optionService.setOption('password_derived_key_salt', utils.randomSecureToken(32));
2017-12-04 11:29:23 +08:00
const passwordVerificationKey = utils.toBase64(await myScryptService.getVerificationHash(password));
await optionService.setOption('password_verification_hash', passwordVerificationKey);
2017-12-04 11:29:23 +08:00
await passwordEncryptionService.setDataKey(password, utils.randomSecureToken(16));
2017-12-04 11:29:23 +08:00
sqlInit.setDbReadyAsResolved();
}
2017-12-04 11:29:23 +08:00
module.exports = {
setup
};