mirror of
				https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
				synced 2025-11-04 16:23:41 +08:00 
			
		
		
		
	fix: #1233 detect api key with custom prefix
This commit is contained in:
		@@ -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 : "",
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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-";
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user