summaryrefslogtreecommitdiff
path: root/src/server/auth/index.ts
diff options
context:
space:
mode:
authorBertrand Yuan <bert.yuan@outlook.com>2025-12-15 23:48:10 +0800
committerBertrand Yuan <bert.yuan@outlook.com>2025-12-15 23:48:10 +0800
commit5b7ccf0b671e2999b62befc729a3e517a0433728 (patch)
tree8bf476dc7c75914c221042546840dc76267366df /src/server/auth/index.ts
initial commit -- the front-end prototype
The initial code is base on Anirudh's work. More to see at: https://github.com/techwithanirudh/shadcn-blog Therefore, the code in this commit is under MIT license.
Diffstat (limited to 'src/server/auth/index.ts')
-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(),
+ });
+};