31 lines
997 B
TypeScript
31 lines
997 B
TypeScript
import NextAuth from "next-auth"
|
|
import Discord from "next-auth/providers/discord"
|
|
|
|
export const { handlers, signIn, signOut, auth } = NextAuth({
|
|
providers: [
|
|
Discord({
|
|
authorization: "https://discord.com/api/oauth2/authorize?scope=identify+email+guilds",
|
|
}),
|
|
],
|
|
callbacks: {
|
|
async jwt({ token, account, profile }) {
|
|
if (account) {
|
|
token.accessToken = account.access_token
|
|
token.discordId = account.providerAccountId
|
|
}
|
|
if (profile) {
|
|
token.discordId = profile.id
|
|
}
|
|
return token
|
|
},
|
|
async session({ session, token }) {
|
|
// @ts-expect-error - accessToken is not strictly typed in session yet
|
|
session.accessToken = token.accessToken
|
|
if (session.user && token.discordId) {
|
|
session.user.id = token.discordId as string
|
|
}
|
|
return session
|
|
},
|
|
},
|
|
})
|