aboutsummaryrefslogtreecommitdiff
path: root/src/routes/api/oauth/refresh/+server.ts
blob: 66b4209c8a5e1ac3b4508dd661fb10f7362600b7 (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')) throw redirect(303, '/');
  else return Response.json(newUser);
};