/** * Authentication middleware * * 本地桌面应用场景下,使用 Anthropic API Key 做简单鉴权。 * 验证请求头中的 Authorization: Bearer 与 .env 中的 ANTHROPIC_API_KEY 是否匹配。 */ export function validateAuth(req: Request): { valid: boolean; error?: string } { const authHeader = req.headers.get('Authorization') if (!authHeader) { return { valid: false, error: 'Missing Authorization header' } } const [scheme, token] = authHeader.split(' ') if (scheme !== 'Bearer' || !token) { return { valid: false, error: 'Invalid Authorization format. Use: Bearer ' } } const apiKey = process.env.ANTHROPIC_API_KEY if (!apiKey) { return { valid: false, error: 'Server ANTHROPIC_API_KEY not configured' } } if (token !== apiKey) { return { valid: false, error: 'Invalid API key' } } return { valid: true } } /** * Helper to check auth and return 401 if invalid */ export function requireAuth(req: Request): Response | null { const { valid, error } = validateAuth(req) if (!valid) { return Response.json({ error: 'Unauthorized', message: error }, { status: 401 }) } return null }