claude-code-best/packages/remote-control-server/src/auth/api-key.ts
2026-05-01 21:39:30 +08:00

18 lines
552 B
TypeScript

import { createHash, timingSafeEqual } from 'node:crypto'
import { config } from '../config'
function sha256(value: string): Buffer {
return createHash('sha256').update(value).digest()
}
/** Validate a raw API key token string */
export function validateApiKey(token: string | undefined): boolean {
if (!token) return false
const tokenHash = sha256(token)
return config.apiKeys.some(key => timingSafeEqual(tokenHash, sha256(key)))
}
export function hashApiKey(key: string): string {
return createHash('sha256').update(key).digest('hex')
}