diff options
Diffstat (limited to 'src/server/auth/index.ts')
| -rw-r--r-- | src/server/auth/index.ts | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/server/auth/index.ts b/src/server/auth/index.ts new file mode 100644 index 0000000..9131cbb --- /dev/null +++ b/src/server/auth/index.ts @@ -0,0 +1,39 @@ +import { betterAuth } from 'better-auth'; +import { drizzleAdapter } from 'better-auth/adapters/drizzle'; +import { headers } from 'next/headers'; + +import { env } from '@/env'; +import { db } from '@/server/db'; + +export const auth = betterAuth({ + database: drizzleAdapter(db, { + provider: 'pg', + usePlural: true, + }), + socialProviders: { + google: { + clientId: env.GOOGLE_CLIENT_ID, + clientSecret: env.GOOGLE_CLIENT_SECRET, + }, + github: { + clientId: env.GITHUB_CLIENT_ID, + clientSecret: env.GITHUB_CLIENT_SECRET, + }, + }, + user: { + additionalFields: { + role: { + type: 'string', + required: true, + input: false, + defaultValue: 'user', + }, + }, + }, +}); + +export const getSession = async () => { + return await auth.api.getSession({ + headers: await headers(), + }); +}; |
