import NextAuth from "next-auth"; import Providers from "next-auth/providers"; export default NextAuth({ providers: [ Providers.Discord({ clientId: process.env.DISCORD_ID, clientSecret: process.env.DISCORD_SECRET, scope: "identify guilds", // @ts-ignore async profile(profile, token) { try { const res = await fetch( "https://discord.com/api/v8/users/@me/guilds", { // @ts-ignore headers: { Authorization: `Bearer ${token.accessToken}`, }, } ); const data = await res.json(); // @ts-ignore profile.guilds = data; } catch (e) { console.log("Discord API Request Failed. See Error:"); console.error(e); } console.log(profile); return profile; }, }), ], session: { jwt: true, }, // callbacks on sign in callbacks: { jwt: async (token, user, account, profile) => { // Add auth_time to token on signin in if (user) { token.profile = profile; token.accessToken = account.accessToken; token.refreshToken = account.refreshToken; } console.log("token", token); return Promise.resolve(token); }, // @ts-ignore session: async (session, token) => { // @ts-ignore session.user.accessToken = token.accessToken; // @ts-ignore session.user.refreshToken = token.refreshToken; // @ts-ignore session.user.profile = token.profile; console.log("session", session); return session; }, }, });