mirror of
https://github.com/xHyroM/roles-bot.git
synced 2024-11-14 13:08:06 +01:00
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import Discord from "@auth/core/providers/discord";
|
|
import { defineConfig } from "auth-astro";
|
|
|
|
export default defineConfig({
|
|
providers: [
|
|
Discord({
|
|
clientId: import.meta.env.DISCORD_CLIENT_ID,
|
|
clientSecret: import.meta.env.DISCORD_CLIENT_SECRET,
|
|
authorization:
|
|
"https://discord.com/api/oauth2/authorize?scope=guilds+identify+email",
|
|
}),
|
|
],
|
|
callbacks: {
|
|
async jwt({ token, account, profile }) {
|
|
if (account && profile) {
|
|
token.accessToken = account.access_token;
|
|
token.id = profile.id;
|
|
}
|
|
|
|
return token;
|
|
},
|
|
async session({ session, token }) {
|
|
if (session.user) {
|
|
session.user.id = token.id as string;
|
|
|
|
const guilds = await fetch("https://discord.com/api/users/@me/guilds", {
|
|
headers: {
|
|
Authorization: `Bearer ${token.accessToken as string}`,
|
|
"Cache-Control": "max-age=300",
|
|
},
|
|
});
|
|
|
|
session.user.guilds = await guilds.json();
|
|
}
|
|
|
|
return session;
|
|
},
|
|
},
|
|
pages: {
|
|
signIn: "/auth/login",
|
|
signOut: "/auth/logout",
|
|
},
|
|
});
|