From 4a979080afc2e0a70626774750f74d2897293e47 Mon Sep 17 00:00:00 2001 From: lew Date: Fri, 23 Jan 2026 03:50:44 +0000 Subject: [PATCH] feat: add github oauth configuration --- apps/blog/astro.config.mjs | 2 ++ apps/blog/auth.config.ts | 19 +++++++++++++++++++ apps/blog/src/lib/auth.ts | 3 +++ 3 files changed, 24 insertions(+) create mode 100644 apps/blog/auth.config.ts create mode 100644 apps/blog/src/lib/auth.ts diff --git a/apps/blog/astro.config.mjs b/apps/blog/astro.config.mjs index 2ee1dc6..75b484f 100644 --- a/apps/blog/astro.config.mjs +++ b/apps/blog/astro.config.mjs @@ -1,5 +1,6 @@ import { defineConfig } from 'astro/config'; import vercel from '@astrojs/vercel'; +import auth from 'auth-astro'; import remarkDirective from 'remark-directive'; import remarkGfm from 'remark-gfm'; import remarkSlug from 'remark-slug'; @@ -9,6 +10,7 @@ import remarkAside from './src/plugins/remark-aside.ts'; export default defineConfig({ output: 'static', adapter: vercel(), + integrations: [auth()], markdown: { remarkPlugins: [ remarkGfm, diff --git a/apps/blog/auth.config.ts b/apps/blog/auth.config.ts new file mode 100644 index 0000000..fe1422b --- /dev/null +++ b/apps/blog/auth.config.ts @@ -0,0 +1,19 @@ +import GitHub from '@auth/core/providers/github'; +import { defineConfig } from 'auth-astro'; + +export default defineConfig({ + providers: [ + GitHub({ + clientId: import.meta.env.GITHUB_CLIENT_ID, + clientSecret: import.meta.env.GITHUB_CLIENT_SECRET, + }), + ], + callbacks: { + session({ session, token }) { + if (session.user && token.sub) { + session.user.id = token.sub; + } + return session; + }, + }, +}); diff --git a/apps/blog/src/lib/auth.ts b/apps/blog/src/lib/auth.ts new file mode 100644 index 0000000..e2fe4e3 --- /dev/null +++ b/apps/blog/src/lib/auth.ts @@ -0,0 +1,3 @@ +export function isAdmin(userId: string | undefined): boolean { + return userId === import.meta.env.ADMIN_GITHUB_ID; +}