From 7f4aedbfc8857d479b09238ea53704f66c009e8a Mon Sep 17 00:00:00 2001 From: zhaoyingbo Date: Thu, 27 Feb 2025 05:09:14 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0Authorization?= =?UTF-8?q?=E5=A4=B4=E5=A4=84=E7=90=86=EF=BC=8C=E6=9B=B4=E6=96=B0Context?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=BB=A5=E5=8C=85=E5=90=ABheaders?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routes/modelProxy/index.ts | 8 ++++++-- types/context.ts | 1 + utils/genContext.ts | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/routes/modelProxy/index.ts b/routes/modelProxy/index.ts index b2d3f0c..685391e 100644 --- a/routes/modelProxy/index.ts +++ b/routes/modelProxy/index.ts @@ -6,8 +6,12 @@ import { Context } from "../../types" * @returns */ export const manageModelProxyReq = async (ctx: Context) => { - const { req, logger } = ctx - logger.info("model proxy") + const { req, headers, logger } = ctx + const auth = headers.get("Authorization") + logger.info(`Start Model Proxy, Authorization: ${auth}`) + if (!auth || auth !== "Bearer sk-21a2ce1c2ee94bc2933798eac1bbcadc") { + return ctx.genResp.forbidden("Authorization required") + } const PROXY_URL = "http://ms-13871-nstruct-lmdeploy-2-0109140455.kscn-tj5-prod2-cloudml.xiaomi.srv" return fetch(PROXY_URL + new URL(req.url).pathname, { diff --git a/types/context.ts b/types/context.ts index d068c52..480c965 100644 --- a/types/context.ts +++ b/types/context.ts @@ -23,6 +23,7 @@ export interface Context { gitlabService: GitlabService path: PathCheckTool searchParams: URLSearchParams + headers: Headers app: "michat" | "egg" | string appInfo: AppInfoModel } diff --git a/utils/genContext.ts b/utils/genContext.ts index ef8dfee..8f5ae0a 100644 --- a/utils/genContext.ts +++ b/utils/genContext.ts @@ -42,6 +42,7 @@ const genContext = async (req: Request, rId?: string) => { } const larkBody = new LarkBody(body) const searchParams = new URL(req.url).searchParams + const headers = new Headers(req.headers) const app = searchParams.get("app") || "egg" const appInfo = APP_MAP[app] const requestId = rId || getPreRequestId(larkBody) || uuid() @@ -80,6 +81,7 @@ const genContext = async (req: Request, rId?: string) => { attachService, gitlabService, searchParams, + headers, app, appInfo, } as Context