import type { APIRoute } from 'astro' import { getOAuthClient } from '../../lib/context' export const POST: APIRoute = async ({ request, cookies, redirect }) => { try { const oauthClient = getOAuthClient(cookies) const formData = await request.formData() const handle = formData.get('handle') if (!handle || typeof handle !== 'string') { return new Response('Invalid handle', { status: 400 }) } const url = await oauthClient.authorize(handle, { scope: 'atproto transition:generic', }) return redirect(url.toString()) } catch (err) { console.error('OAuth authorize failed:', err) const error = err instanceof Error ? err.message : 'unexpected error' return new Response(`Login failed: ${error}`, { status: 500 }) } }