Fred Liang 2023-12-25 04:07:35 +08:00
parent c0ce70ccc7
commit 5af68ac545
No known key found for this signature in database
GPG Key ID: 4DABDA85EF70EC71
2 changed files with 18 additions and 8 deletions

View File

@ -16,11 +16,11 @@ function getIP(req: NextRequest) {
function parseApiKey(bearToken: string) { function parseApiKey(bearToken: string) {
const token = bearToken.trim().replaceAll("Bearer ", "").trim(); const token = bearToken.trim().replaceAll("Bearer ", "").trim();
const isOpenAiKey = !token.startsWith(ACCESS_CODE_PREFIX); const isApiKey = !token.startsWith(ACCESS_CODE_PREFIX);
return { return {
accessCode: isOpenAiKey ? "" : token.slice(ACCESS_CODE_PREFIX.length), accessCode: isApiKey ? "" : token.slice(ACCESS_CODE_PREFIX.length),
apiKey: isOpenAiKey ? token : "", apiKey: isApiKey ? token : "",
}; };
} }
@ -49,7 +49,7 @@ export function auth(req: NextRequest) {
if (serverConfig.hideUserApiKey && !!apiKey) { if (serverConfig.hideUserApiKey && !!apiKey) {
return { return {
error: true, 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) { if (systemApiKey) {
console.log("[Auth] use system api key"); console.log("[Auth] use system api key");
req.headers.set( req.headers.set("Authorization", `Bearer ${systemApiKey}`);
"Authorization",
`Bearer ${systemApiKey}`,
);
} else { } else {
console.log("[Auth] admin did not provide an api key"); console.log("[Auth] admin did not provide an api key");
} }

View File

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