aboutsummaryrefslogtreecommitdiff
path: root/src/routes/api/oauth/refresh/+server.ts
blob: 13e7ab09e14726ba026e48cd12ac3dc5f28a592f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { env } from "$env/dynamic/private";
import { env as env2 } from "$env/dynamic/public";
import { redirect } from "@sveltejs/kit";

export const GET = async ({ url, cookies }) => {
	const formData = new FormData();

	formData.append("grant_type", "refresh_token");
	formData.append("client_id", env2.PUBLIC_ANILIST_CLIENT_ID as string);
	formData.append("client_secret", env.ANILIST_CLIENT_SECRET as string);
	formData.append("refresh_token", url.searchParams.get("token") || "");

	const newUser = await (
		await fetch("https://anilist.co/api/v2/oauth/token", {
			method: "POST",
			body: formData,
		})
	).json();

	cookies.set("user", JSON.stringify(newUser), {
		path: "/",
		maxAge: 60 * 60 * 24 * 7,
		httpOnly: false,
		sameSite: "lax",
		secure: false,
	});

	if (url.searchParams.get("redirect")) redirect(303, "/");
	else return Response.json(newUser);
};