diff --git a/.env b/.env new file mode 100644 index 0000000..81de221 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +PRIVATE_KEY_PATH=./laiba-app.2024-05-08.private-key.pem diff --git a/index.js b/index.js index d930de3..091b8f1 100644 --- a/index.js +++ b/index.js @@ -1,17 +1,26 @@ -const jwt = require('jsonwebtoken') -const fs = require('fs') +require("dotenv").config(); -fs.readFile('./laiba-backend-app.2021-11-29.private-key.pem', 'utf-8', (err, data) => { - //iat +const jwt = require("jsonwebtoken"); +const fs = require("fs").promises; - const date = Math.floor(new Date().getTime() / 1000) +const PRIVATE_KEY_PATH = process.env.PRIVATE_KEY_PATH; + +const generateToken = async () => { + try { + const privateKey = await fs.readFile(PRIVATE_KEY_PATH, "utf-8"); + const date = Math.floor(new Date().getTime() / 1000); const payload = { - iat: date - 60, - exp: date + (10 * 60), - iss: "APP_ID" - } + iat: date - 60, + exp: date + 10 * 60, + iss: "APP_ID", + }; + + const jwtToken = jwt.sign(payload, privateKey, { algorithm: "RS256" }); + console.log(jwtToken); + } catch (error) { + console.error("Error reading file data", error); + } +}; - const jwt_token = jwt.sign(payload, data, { algorithm: 'RS256' }) - console.log(jwt_token) -}) \ No newline at end of file +generateToken(); diff --git a/package-lock.json b/package-lock.json index a4038dc..5a360f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "dotenv": "^16.4.5", "jsonwebtoken": "^8.5.1" } }, @@ -17,6 +18,17 @@ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -139,6 +151,11 @@ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, + "dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==" + }, "ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", diff --git a/package.json b/package.json index 63f5032..a53a51c 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "author": "", "license": "ISC", "dependencies": { + "dotenv": "^16.4.5", "jsonwebtoken": "^8.5.1" } }