aboutsummaryrefslogtreecommitdiff
path: root/web/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'web/src/lib')
-rw-r--r--web/src/lib/auth.js35
1 files changed, 34 insertions, 1 deletions
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;
+ }
+ }
})