feat(api): integrate Better Auth with Drizzle adapter and social providers

- Add Better Auth config with Google + GitHub social providers
- Mount auth handler on /api/auth/* in Express
- Generate and migrate auth tables (user, session, account, verification)
- Deduplicate term_glosses data for tighter unique constraint
- Drop legacy users table
This commit is contained in:
lila 2026-04-12 11:46:38 +02:00
parent cbe638b1af
commit 91a3112d8b
11 changed files with 1625 additions and 25 deletions

17
apps/api/src/lib/auth.ts Normal file
View file

@ -0,0 +1,17 @@
import { betterAuth } from "better-auth";
import { drizzleAdapter } from "better-auth/adapters/drizzle";
import { db } from "@glossa/db";
export const auth = betterAuth({
database: drizzleAdapter(db, { provider: "pg" }),
socialProviders: {
google: {
clientId: process.env["GOOGLE_CLIENT_ID"] as string,
clientSecret: process.env["GOOGLE_CLIENT_SECRET"] as string,
},
github: {
clientId: process.env["GITHUB_CLIENT_ID"] as string,
clientSecret: process.env["GITHUB_CLIENT_SECRET"] as string,
},
},
});