From 54d08b78cc9211f4f0f5fce4a1a26a229ceecb65 Mon Sep 17 00:00:00 2001 From: Jonathan Barrow Date: Sat, 24 Sep 2022 19:31:14 -0400 Subject: [PATCH] /nex_token/@me uses cache and async fs --- src/services/nnid/routes/provider.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/services/nnid/routes/provider.js b/src/services/nnid/routes/provider.js index 91999cf..da710d3 100644 --- a/src/services/nnid/routes/provider.js +++ b/src/services/nnid/routes/provider.js @@ -122,7 +122,7 @@ router.get('/nex_token/@me', async (request, response) => { const cryptoPath = `${__dirname}/../../../../certs/${service_type}/${service_name}`; - if (!fs.pathExistsSync(cryptoPath)) { + if (!await fs.pathExists(cryptoPath)) { // Need to generate keys return response.send(xmlbuilder.create({ errors: { @@ -134,12 +134,21 @@ router.get('/nex_token/@me', async (request, response) => { }).end()); } - const publicKey = fs.readFileSync(`${cryptoPath}/public.pem`); - const hmacSecret = fs.readFileSync(`${cryptoPath}/secret.key`); + let publicKey = cache.getNEXPublicKey(service_name); + if (publicKey === null) { + publicKey = await fs.readFile(`${cryptoPath}/public.pem`); + await cache.setNEXPublicKey(service_name, publicKey); + } + + let secretKey = cache.getNEXSecretKey(service_name); + if (secretKey === null) { + secretKey = await fs.readFile(`${cryptoPath}/secret.key`); + await cache.setNEXSecretKey(service_name, secretKey); + } const cryptoOptions = { public_key: publicKey, - hmac_secret: hmacSecret + hmac_secret: secretKey }; const tokenOptions = {