diff --git a/packages/cli/src/utils/helper.ts b/packages/cli/src/utils/helper.ts index 6ecfe24fd2..6c165c7298 100644 --- a/packages/cli/src/utils/helper.ts +++ b/packages/cli/src/utils/helper.ts @@ -25,7 +25,7 @@ export async function tryCatch( } export const generateSecretHash = () => { - return Crypto.randomBytes(16).toString("hex"); + return Crypto.randomBytes(32).toString("hex"); }; export const spawnCommand = (cmd: string, cwd: string = process.cwd()) => diff --git a/packages/cli/test/init.test.ts b/packages/cli/test/init.test.ts index 8fbc8032ee..ab4801cb99 100644 --- a/packages/cli/test/init.test.ts +++ b/packages/cli/test/init.test.ts @@ -155,7 +155,7 @@ describe("initAction", () => { return { value: true }; } if (question.name === "providedSecret") { - return { providedSecret: "test-secret-123" }; + return { providedSecret: "" }; } if (question.name === "providedURL") { return { providedURL: "http://localhost:3000" }; @@ -256,6 +256,20 @@ describe("initAction", () => { .then(() => true) .catch(() => false); expect(envExists).toBe(true); + + const envContent = await fs.readFile(envPath, "utf-8"); + + const line = envContent + .toString() + .split("\n") + .find((l) => l.startsWith("BETTER_AUTH_SECRET=")); + + expect(line).toBeDefined(); + + const secret = line!.split("=")[1]?.replaceAll('"', "").trim(); + + expect(secret).toBeDefined(); + expect(secret!.length).toBeGreaterThanOrEqual(64); // 64 characters 32 hex bytes }, );