diff options
Diffstat (limited to 'packages/web/src/server/auth')
| -rw-r--r-- | packages/web/src/server/auth/config.ts | 66 | ||||
| -rw-r--r-- | packages/web/src/server/auth/index.ts | 21 |
2 files changed, 16 insertions, 71 deletions
diff --git a/packages/web/src/server/auth/config.ts b/packages/web/src/server/auth/config.ts deleted file mode 100644 index b3307cc..0000000 --- a/packages/web/src/server/auth/config.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { DrizzleAdapter } from "@auth/drizzle-adapter"; -import type { DefaultSession, NextAuthConfig } from "next-auth"; -import DiscordProvider from "next-auth/providers/discord"; -import { db } from "~/server/db"; -import { - accounts, - sessions, - users, - verificationTokens, -} from "~/server/db/schema"; - -/** - * Module augmentation for `next-auth` types. Allows us to add custom properties to the `session` - * object and keep type safety. - * - * @see https://next-auth.js.org/getting-started/typescript#module-augmentation - */ -declare module "next-auth" { - interface Session extends DefaultSession { - user: { - id: string; - // ...other properties - // role: UserRole; - } & DefaultSession["user"]; - } - - // interface User { - // // ...other properties - // // role: UserRole; - // } -} - -/** - * Options for NextAuth.js used to configure adapters, providers, callbacks, etc. - * - * @see https://next-auth.js.org/configuration/options - */ -export const authConfig = { - providers: [ - DiscordProvider, - /** - * ...add more providers here. - * - * Most other providers require a bit more work than the Discord provider. For example, the - * GitHub provider requires you to add the `refresh_token_expires_in` field to the Account - * model. Refer to the NextAuth.js docs for the provider you want to use. Example: - * - * @see https://next-auth.js.org/providers/github - */ - ], - adapter: DrizzleAdapter(db, { - usersTable: users, - accountsTable: accounts, - sessionsTable: sessions, - verificationTokensTable: verificationTokens, - }), - callbacks: { - session: ({ session, user }) => ({ - ...session, - user: { - ...session.user, - id: user.id, - }, - }), - }, -} satisfies NextAuthConfig; diff --git a/packages/web/src/server/auth/index.ts b/packages/web/src/server/auth/index.ts index 21f0ee0..f94f4e4 100644 --- a/packages/web/src/server/auth/index.ts +++ b/packages/web/src/server/auth/index.ts @@ -1,8 +1,19 @@ -import NextAuth from "next-auth"; import { cache } from "react"; -import { authConfig } from "./config"; +import { createClient } from "~/lib/supabase/server"; -const { auth: uncachedAuth, handlers, signIn, signOut } = NextAuth(authConfig); -const auth = cache(uncachedAuth); +export const getUser = cache(async () => { + const supabase = await createClient(); + const { + data: { user }, + } = await supabase.auth.getUser(); -export { auth, handlers, signIn, signOut }; + return user; +}); +export const getSession = cache(async () => { + const supabase = await createClient(); + const { + data: { session }, + } = await supabase.auth.getSession(); + + return session; +}); |