From c2e79d22d2edb61c966dc81fa563bd766d03fb09 Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Thu, 4 May 2023 22:50:07 +0800 Subject: [PATCH] fix: #1233 detect api key with custom prefix --- app/api/auth.ts | 5 +++-- app/constant.ts | 2 ++ app/requests.ts | 5 ++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/api/auth.ts b/app/api/auth.ts index 9a834832..1005c5ff 100644 --- a/app/api/auth.ts +++ b/app/api/auth.ts @@ -1,6 +1,7 @@ import { NextRequest } from "next/server"; import { getServerSideConfig } from "../config/server"; import md5 from "spark-md5"; +import { ACCESS_CODE_PREFIX } from "../constant"; const serverConfig = getServerSideConfig(); @@ -17,10 +18,10 @@ function getIP(req: NextRequest) { function parseApiKey(bearToken: string) { const token = bearToken.trim().replaceAll("Bearer ", "").trim(); - const isOpenAiKey = token.startsWith("sk-"); + const isOpenAiKey = !token.startsWith(ACCESS_CODE_PREFIX); return { - accessCode: isOpenAiKey ? "" : token, + accessCode: isOpenAiKey ? "" : token.slice(ACCESS_CODE_PREFIX.length), apiKey: isOpenAiKey ? token : "", }; } diff --git a/app/constant.ts b/app/constant.ts index e0ec03d0..fed20caf 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -36,3 +36,5 @@ export enum StoreKey { export const MAX_SIDEBAR_WIDTH = 500; export const MIN_SIDEBAR_WIDTH = 230; export const NARROW_SIDEBAR_WIDTH = 100; + +export const ACCESS_CODE_PREFIX = "ak-"; diff --git a/app/requests.ts b/app/requests.ts index 6a155394..4579c6ad 100644 --- a/app/requests.ts +++ b/app/requests.ts @@ -8,6 +8,7 @@ import { useChatStore, } from "./store"; import { showToast } from "./components/ui-lib"; +import { ACCESS_CODE_PREFIX } from "./constant"; const TIME_OUT_MS = 60000; @@ -58,7 +59,9 @@ function getHeaders() { accessStore.enabledAccessControl() && validString(accessStore.accessCode) ) { - headers.Authorization = makeBearer(accessStore.accessCode); + headers.Authorization = makeBearer( + ACCESS_CODE_PREFIX + accessStore.accessCode, + ); } return headers;