From a19b6ed4ef829697fd0be153af5e27c99f267787 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Sun, 23 Mar 2025 16:24:32 -0400 Subject: Fundementials of the new dashboard --- web/src/lib/auth.js | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'web/src/lib') diff --git a/web/src/lib/auth.js b/web/src/lib/auth.js index bc482b1..3f78f94 100644 --- a/web/src/lib/auth.js +++ b/web/src/lib/auth.js @@ -2,5 +2,38 @@ import NextAuth from "next-auth" import Discord from "next-auth/providers/discord" export const { handlers, signIn, signOut, auth } = NextAuth({ - providers: [Discord], + providers: [Discord({ + authorization: { + profile(profile) { + return { + id: profile.id, + name: profile.username, + image: profile.image_url + } + }, + url: "https://discord.com/api/oauth2/authorize", + params: { scope: "identify guilds" }, + } + })], + callbacks: { + async jwt({ token, account }) { + // Persist the OAuth access_token to the token right after sign in + if (account) { + token.accessToken = account.access_token; + } + return token; + }, + async session({ session, token }) { + if (token.accessToken) { + session.user = await fetch('https://discord.com/api/users/@me', { + headers: { + authorization: `Bearer ${token.accessToken}` + } + }).then((r) => r.json()); + session.accessToken = token.accessToken; + } + + return session; + } + } }) -- cgit v1.2.3