summaryrefslogtreecommitdiff
path: root/src/server/auth
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/auth')
-rw-r--r--src/server/auth/index.ts39
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(),
+ });
+};