Compare commits

...

1 Commits

Author SHA1 Message Date
Paperclip 0829f9ffa2 fix(GRO-545): use socialProviders config key for GitHub/Google in Better-Auth
PR #257 placed google() and github() from better-auth/social-providers into
the plugins[] array. Better Auth v1 does not recognize social providers via
plugins — it reads them from options.socialProviders. This caused Provider
not found (404) on every GitHub/Google sign-in attempt.

Fix: move Google and GitHub configuration from plugins[] to socialProviders{},
passing clientId/clientSecret/redirectURI directly as plain config objects.
Better Auth v1 calls the internal provider factory functions automatically.

Also remove the now-unused import of google and github from
better-auth/social-providers.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-11 14:29:59 +00:00
+16 -18
View File
@@ -1,7 +1,6 @@
import { betterAuth } from "better-auth";
import { drizzleAdapter } from "better-auth/adapters/drizzle";
import { genericOAuth } from "better-auth/plugins";
import { google, github } from "better-auth/social-providers";
import { getDb, authProviderConfig, eq } from "@groombook/db";
import { decryptSecret } from "@groombook/db";
@@ -173,22 +172,6 @@ export async function initAuth(): Promise<void> {
const callbackBase = `${BETTER_AUTH_URL}/api/auth/callback`;
const socialPlugins = [];
if (hasGoogle) {
socialPlugins.push(google({
clientId: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
redirectURI: `${callbackBase}/google`,
}));
}
if (hasGitHub) {
socialPlugins.push(github({
clientId: process.env.GITHUB_CLIENT_ID!,
clientSecret: process.env.GITHUB_CLIENT_SECRET!,
redirectURI: `${callbackBase}/github`,
}));
}
// Build Better-Auth instance using resolved config
authInstance = betterAuth({
database: drizzleAdapter(db, {
@@ -196,6 +179,22 @@ export async function initAuth(): Promise<void> {
}),
secret: BETTER_AUTH_SECRET,
baseURL: BETTER_AUTH_URL,
socialProviders: {
...(hasGoogle ? {
google: {
clientId: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
redirectURI: `${callbackBase}/google`,
},
} : {}),
...(hasGitHub ? {
github: {
clientId: process.env.GITHUB_CLIENT_ID!,
clientSecret: process.env.GITHUB_CLIENT_SECRET!,
redirectURI: `${callbackBase}/github`,
},
} : {}),
},
plugins: [
genericOAuth({
config: [
@@ -216,7 +215,6 @@ export async function initAuth(): Promise<void> {
},
],
}),
...socialPlugins,
],
session: {
expiresIn: 60 * 60 * 24 * 7, // 7 days