aboutsummaryrefslogtreecommitdiff
path: root/src/routes/api/oauth/refresh/+server.ts
blob: 43e9136ce1db439260a8c40e06725d986acada20 (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
31
32
33
34
35
36
import { dev } from '$app/environment';
import { env } from '$env/dynamic/private';
import { env as env2 } from '$env/dynamic/public';
import { redirect } from '@sveltejs/kit';

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

	formData.append('grant_type', 'refresh_token');
	formData.append('client_id', env2.PUBLIC_ANILIST_CLIENT_ID);
	formData.append('client_secret', env.ANILIST_CLIENT_SECRET);
	formData.append(
		'refresh_token',
		JSON.parse(cookies.get('user') || '{ refresh_token: null }')['refresh_token']
	);
	cookies.set(
		'user',
		JSON.stringify(
			await (
				await fetch('https://anilist.co/api/v2/oauth/token', {
					method: 'POST',
					body: formData
				})
			).json()
		),
		{
			path: '/',
			maxAge: 60 * 60 * 24 * 7,
			httpOnly: true,
			sameSite: 'lax',
			secure: !dev
		}
	);

	throw redirect(303, '/');
};