Explorar el Código

Merge pull request #3620 from fredliang44/main

fix: fix issue cannot using gemini-pro with code auth
Fred Liang hace 2 años
padre
commit
c82efceae0
Se han modificado 2 ficheros con 12 adiciones y 8 borrados
  1. 5 8
      app/api/auth.ts
  2. 7 0
      app/api/google/[...path]/route.ts

+ 5 - 8
app/api/auth.ts

@@ -16,11 +16,11 @@ function getIP(req: NextRequest) {
 
 function parseApiKey(bearToken: string) {
   const token = bearToken.trim().replaceAll("Bearer ", "").trim();
-  const isOpenAiKey = !token.startsWith(ACCESS_CODE_PREFIX);
+  const isApiKey = !token.startsWith(ACCESS_CODE_PREFIX);
 
   return {
-    accessCode: isOpenAiKey ? "" : token.slice(ACCESS_CODE_PREFIX.length),
-    apiKey: isOpenAiKey ? token : "",
+    accessCode: isApiKey ? "" : token.slice(ACCESS_CODE_PREFIX.length),
+    apiKey: isApiKey ? token : "",
   };
 }
 
@@ -49,7 +49,7 @@ export function auth(req: NextRequest) {
   if (serverConfig.hideUserApiKey && !!apiKey) {
     return {
       error: true,
-      msg: "you are not allowed to access openai with your own api key",
+      msg: "you are not allowed to access with your own api key",
     };
   }
 
@@ -64,10 +64,7 @@ export function auth(req: NextRequest) {
 
     if (systemApiKey) {
       console.log("[Auth] use system api key");
-      req.headers.set(
-        "Authorization",
-        `Bearer ${systemApiKey}`,
-      );
+      req.headers.set("Authorization", `Bearer ${systemApiKey}`);
     } else {
       console.log("[Auth] admin did not provide an api key");
     }

+ 7 - 0
app/api/google/[...path]/route.ts

@@ -39,6 +39,13 @@ async function handle(
     10 * 60 * 1000,
   );
 
+  const authResult = auth(req);
+  if (authResult.error) {
+    return NextResponse.json(authResult, {
+      status: 401,
+    });
+  }
+
   const bearToken = req.headers.get("Authorization") ?? "";
   const token = bearToken.trim().replaceAll("Bearer ", "").trim();