From ea91d692d3cd3436032932dd12918b530674174e Mon Sep 17 00:00:00 2001 From: David Corbitt Date: Tue, 8 Aug 2023 11:45:03 -0700 Subject: [PATCH] Use crypto-random-string --- app/package.json | 1 + app/pnpm-lock.yaml | 15 +++++++++++++++ app/src/server/utils/generateApiKey.ts | 12 +++--------- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/app/package.json b/app/package.json index 802dae8..e7c5818 100644 --- a/app/package.json +++ b/app/package.json @@ -50,6 +50,7 @@ "chroma-js": "^2.4.2", "concurrently": "^8.2.0", "cors": "^2.8.5", + "crypto-random-string": "^5.0.0", "dayjs": "^1.11.8", "dedent": "^1.0.1", "dotenv": "^16.3.1", diff --git a/app/pnpm-lock.yaml b/app/pnpm-lock.yaml index ba5868d..76ff991 100644 --- a/app/pnpm-lock.yaml +++ b/app/pnpm-lock.yaml @@ -89,6 +89,9 @@ dependencies: cors: specifier: ^2.8.5 version: 2.8.5 + crypto-random-string: + specifier: ^5.0.0 + version: 5.0.0 dayjs: specifier: ^1.11.8 version: 1.11.8 @@ -4393,6 +4396,13 @@ packages: resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} dev: false + /crypto-random-string@5.0.0: + resolution: {integrity: sha512-KWjTXWwxFd6a94m5CdRGW/t82Tr8DoBc9dNnPCAbFI1EBweN6v1tv8y4Y1m7ndkp/nkIBRxUxAzpaBnR2k3bcQ==} + engines: {node: '>=14.16'} + dependencies: + type-fest: 2.19.0 + dev: false + /css-background-parser@0.1.0: resolution: {integrity: sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==} dev: false @@ -8623,6 +8633,11 @@ packages: engines: {node: '>=8'} dev: false + /type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + dev: false + /type-fest@4.0.0: resolution: {integrity: sha512-d/oYtUnPM9zar2fqqGLYPzgcY0qUlYK0evgNVti93xpzfjGkMgZHu9Lvgrkn0rqGXTgsFRxFamzjGoD9Uo+dgw==} engines: {node: '>=16'} diff --git a/app/src/server/utils/generateApiKey.ts b/app/src/server/utils/generateApiKey.ts index 5ff451b..25ce442 100644 --- a/app/src/server/utils/generateApiKey.ts +++ b/app/src/server/utils/generateApiKey.ts @@ -1,11 +1,5 @@ +import cryptoRandomString from "crypto-random-string"; + const KEY_LENGTH = 42; -export const generateApiKey = () => { - const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - let randomChars = ""; - for (let i = 0; i < KEY_LENGTH; i++) { - randomChars += chars.charAt(Math.floor(Math.random() * chars.length)); - } - - return `opc_${randomChars}`; -}; +export const generateApiKey = () => `opc_${cryptoRandomString({ length: KEY_LENGTH })}`;