All checks were successful
deploy to cloudflare pages / deploy (push) Successful in 34s
25 lines
742 B
TypeScript
25 lines
742 B
TypeScript
import { redirect } from "@sveltejs/kit";
|
|
import { generateCodeVerifier, generateState } from "arctic";
|
|
import { discord } from "$lib/auth/discord";
|
|
import type { RequestHandler } from "./$types";
|
|
import type { CookieData } from "$lib/auth";
|
|
|
|
export const GET: RequestHandler = async ({ cookies, url }) => {
|
|
const cookie: CookieData = {
|
|
state: generateState(),
|
|
codeVerifier: generateCodeVerifier(),
|
|
next: url.searchParams.get("next") ?? "/",
|
|
};
|
|
|
|
const scopes = ["identify"];
|
|
const authUrl = discord.createAuthorizationURL(cookie.state, cookie.codeVerifier, scopes);
|
|
|
|
cookies.set("discord_oauth_state", JSON.stringify(cookie), {
|
|
path: "/",
|
|
httpOnly: true,
|
|
maxAge: 60 * 10,
|
|
sameSite: "lax",
|
|
});
|
|
|
|
redirect(302, authUrl);
|
|
};
|