feat: tambah autentikasi x-api-key pada NOC API dan ekstrak isValidApiKey ke shared lib
This commit is contained in:
15
src/lib/apiKey.ts
Normal file
15
src/lib/apiKey.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { prisma } from "@/module/_global";
|
||||
|
||||
const CACHE_TTL_MS = 60_000;
|
||||
let apiKeyCache: Set<string> = new Set();
|
||||
let cacheExpiresAt = 0;
|
||||
|
||||
export async function isValidApiKey(incoming: string): Promise<boolean> {
|
||||
const now = Date.now();
|
||||
if (now > cacheExpiresAt) {
|
||||
const rows = await prisma.apiKey.findMany({ where: { isActive: true }, select: { key: true } });
|
||||
apiKeyCache = new Set(rows.map((r) => r.key));
|
||||
cacheExpiresAt = now + CACHE_TTL_MS;
|
||||
}
|
||||
return apiKeyCache.has(incoming);
|
||||
}
|
||||
Reference in New Issue
Block a user