feat: implement discord oauth flow

This commit is contained in:
mrjvs
2026-08-09 18:22:26 +02:00
parent dcf00f5ec9
commit 735a723328
8 changed files with 116 additions and 2 deletions

View File

@@ -0,0 +1,23 @@
import { useDiscord } from "~~/server/utils/discord";
import { ApiAccountDiscordLink } from "~~/shared/api-types";
export default defineEventHandler(async (event): Promise<ApiAccountDiscordLink> => {
enforceLoggedIn(event);
const discord = useDiscord(event);
if (!discord) throw createError({
status: 400,
message: 'Discord integration not configured',
})
const redirectUrl = discord.makeCallbackUrl();
const url = new URL("https://discord.com/oauth2/authorize");
url.searchParams.set('response_type', 'code');
url.searchParams.set('client_id', 'code');
url.searchParams.set('scope', 'identify');
url.searchParams.set('redirect_uri', redirectUrl);
url.searchParams.set('prompt', 'scope');
url.searchParams.set('integration_type', '1');
return {
url: url.toString(),
}
});

View File

@@ -0,0 +1,15 @@
export default defineEventHandler(async (event): Promise<void> => {
const auth = enforceLoggedIn(event);
const discord = useDiscord(event);
if (!discord) throw createError({
status: 400,
message: 'Discord integration not configured',
})
const grpc = useApiGrpcWithToken(event, auth.token);
await grpc.setDiscordConnectionData({
id: '',
});
// TODO set roles based on stripe info
});