Debugging wizard secret

This commit is contained in:
emad-salah 2020-02-10 21:00:03 +01:00
parent abd13325d4
commit 096fe1d1e4
2 changed files with 37 additions and 923 deletions

View file

@ -13,6 +13,7 @@ const secretsFilePath = path.resolve(__dirname, 'secrets.json')
class Auth { class Auth {
verifySecretsFile = async () => { verifySecretsFile = async () => {
try { try {
logger.info('Verifying secrets file...', secretsFilePath)
const fileExists = await FS.access(secretsFilePath) const fileExists = await FS.access(secretsFilePath)
if (!fileExists) { if (!fileExists) {
@ -37,6 +38,7 @@ class Auth {
const { exists, parsable } = await this.verifySecretsFile() const { exists, parsable } = await this.verifySecretsFile()
if (exists && parsable) { if (exists && parsable) {
logger.info('Secrets file exists!')
return true return true
} }
@ -53,7 +55,8 @@ class Auth {
readSecrets = () => readSecrets = () =>
new Promise((resolve, reject) => { new Promise((resolve, reject) => {
this.initSecretsFile().then(() => { this.initSecretsFile()
.then(() => {
jsonfile.readFile(secretsFilePath, (err, allSecrets) => { jsonfile.readFile(secretsFilePath, (err, allSecrets) => {
if (err) { if (err) {
logger.info('readSecrets err', err) logger.info('readSecrets err', err)
@ -63,34 +66,36 @@ class Auth {
} }
}) })
}) })
.catch(reject)
}) })
writeSecrets(key, value) { async writeSecrets(key, value) {
return this.initSecretsFile() await this.initSecretsFile()
.then(() => this.readSecrets()) const allSecrets = await this.readSecrets()
.then(allSecrets => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
allSecrets[key] = value allSecrets[key] = value
logger.info('Writing new secret:', secretsFilePath)
jsonfile.writeFile( jsonfile.writeFile(
secretsFilePath, secretsFilePath,
allSecrets, allSecrets,
{ spaces: 2, EOL: '\r\n' }, { spaces: 2, EOL: '\r\n' },
err => { err => {
if (err) { if (err) {
logger.info('writeSecrets err', err) logger.error('writeSecrets err', err)
reject(err) reject(err)
} else { } else {
logger.info('New secret saved!')
resolve(true) resolve(true)
} }
} }
) )
}) })
})
} }
async generateToken() { async generateToken() {
const timestamp = Date.now() const timestamp = Date.now()
const secret = uuidv1() const secret = uuidv1()
logger.info('Generating new secret...')
const token = jwt.sign( const token = jwt.sign(
{ {
data: { timestamp } data: { timestamp }
@ -98,6 +103,7 @@ class Auth {
secret, secret,
{ expiresIn: '500h' } { expiresIn: '500h' }
) )
logger.info('Saving secret...')
await this.writeSecrets(timestamp, secret) await this.writeSecrets(timestamp, secret)
return token return token
} }

894
yarn.lock

File diff suppressed because it is too large Load diff