|
import type { RequestHandler } from "@sveltejs/kit"; |
|
|
|
export const GET: RequestHandler = async ({ url }) => { |
|
const code = url.searchParams.get("code"); |
|
if (!code) { |
|
return new Response(JSON.stringify({ error: "Code not provided" }), { status: 400 }); |
|
} |
|
const clientId = import.meta.env.VITE_CLIENT_ID; |
|
const clientSecret = import.meta.env.VITE_CLIENT_SECRET; |
|
const redirectUri = import.meta.env.VITE_REDIRECT_URI; |
|
const tokenUrl = "https://huggingface.co/oauth/token"; |
|
const body = new URLSearchParams({ |
|
client_id: clientId, |
|
client_secret: clientSecret, |
|
redirect_uri: redirectUri, |
|
code: code, |
|
grant_type: "authorization_code", |
|
}); |
|
|
|
try { |
|
const response = await fetch(tokenUrl, { |
|
method: "POST", |
|
headers: { |
|
"Content-Type": "application/x-www-form-urlencoded", |
|
}, |
|
body, |
|
}); |
|
|
|
if (!response.ok) { |
|
return new Response(JSON.stringify({ error: "Token exchange failed" }), { status: response.status }); |
|
} |
|
const data = await response.json(); |
|
const accessToken = data.access_token; |
|
|
|
return new Response(JSON.stringify({ access_token: accessToken }), { |
|
status: 200, |
|
headers: { "Content-Type": "application/json" }, |
|
}); |
|
} catch (error) { |
|
return new Response(JSON.stringify({ error: "Token exchange failed" }), { status: 500 }); |
|
} |
|
}; |
|
|