diff --git a/packages/better-auth/src/__snapshots__/init.test.ts.snap b/packages/better-auth/src/__snapshots__/init.test.ts.snap index cd682a86..4e14c9bd 100644 --- a/packages/better-auth/src/__snapshots__/init.test.ts.snap +++ b/packages/better-auth/src/__snapshots__/init.test.ts.snap @@ -100,10 +100,6 @@ exports[`init > should match config 1`] = ` "open": true, "readonly": false, }, - "emailAndPassword": { - "autoSignIn": true, - "enabled": false, - }, "plugins": [], "secret": "better-auth-secret-123456789", }, diff --git a/packages/better-auth/src/api/routes/sign-up.ts b/packages/better-auth/src/api/routes/sign-up.ts index eb5aecb7..52d97a49 100644 --- a/packages/better-auth/src/api/routes/sign-up.ts +++ b/packages/better-auth/src/api/routes/sign-up.ts @@ -204,7 +204,7 @@ export const signUpEmail = () => } if ( - !ctx.context.options.emailAndPassword.autoSignIn || + ctx.context.options.emailAndPassword.autoSignIn === false || ctx.context.options.emailAndPassword.requireEmailVerification ) { return ctx.json({ diff --git a/packages/better-auth/src/init.test.ts b/packages/better-auth/src/init.test.ts index a3d150cd..7062d06a 100644 --- a/packages/better-auth/src/init.test.ts +++ b/packages/better-auth/src/init.test.ts @@ -98,4 +98,53 @@ describe("init", async () => { ok: true, }); }); + + it("should allow plugins to set config values", async () => { + const ctx = await init({ + database, + baseURL: "http://localhost:3000", + plugins: [ + { + id: "test-plugin", + init(ctx) { + return { + context: ctx, + options: { + emailAndPassword: { + enabled: true, + }, + }, + }; + }, + }, + ], + }); + expect(ctx.options.emailAndPassword?.enabled).toBe(true); + }); + + it("should not allow plugins to set config values if theyre set in the main config", async () => { + const ctx = await init({ + database, + baseURL: "http://localhost:3000", + emailAndPassword: { + enabled: false, + }, + plugins: [ + { + id: "test-plugin", + init(ctx) { + return { + context: ctx, + options: { + emailAndPassword: { + enabled: true, + }, + }, + }; + }, + }, + ], + }); + expect(ctx.options.emailAndPassword?.enabled).toBe(false); + }); }); diff --git a/packages/better-auth/src/init.ts b/packages/better-auth/src/init.ts index 8dc4251f..2282b127 100644 --- a/packages/better-auth/src/init.ts +++ b/packages/better-auth/src/init.ts @@ -55,11 +55,6 @@ export const init = async (options: BetterAuthOptions) => { baseURL: baseURL ? new URL(baseURL).origin : "", basePath: options.basePath || "/api/auth", plugins: plugins.concat(internalPlugins), - emailAndPassword: { - ...options.emailAndPassword, - enabled: options.emailAndPassword?.enabled ?? false, - autoSignIn: options.emailAndPassword?.autoSignIn ?? true, - }, }; const cookies = getCookies(options); const tables = getAuthTables(options);