Browse Source

chore: 新增免认证API前缀并移除接口鉴权逻辑

1. 向AUTH_EXEMPT_API_PREFIXES新增推荐横幅和画布模板接口路径
2. 移除/recommend-banners和/canvas-templates接口的登录校验与请求头鉴权代码
feature/interaction
huangmin 1 month ago
parent
commit
f013790fb5
  1. 5
      src/app/api/canvas-templates/route.ts
  2. 6
      src/app/api/recommend-banners/route.ts
  3. 2
      src/proxy.ts

5
src/app/api/canvas-templates/route.ts

@ -1,7 +1,6 @@
import { NextRequest, NextResponse } from "next/server"; import { NextRequest, NextResponse } from "next/server";
const UPSTREAM_TEMPLATE_LIST_PATH = "/api_client/canvas/template/list"; const UPSTREAM_TEMPLATE_LIST_PATH = "/api_client/canvas/template/list";
import { requireLogin } from "@/app/api/_auth";
function getPopiBaseUrl() { function getPopiBaseUrl() {
return process.env.POPIART_API_BASE_URL?.replace(/\/+$/, "") || ""; return process.env.POPIART_API_BASE_URL?.replace(/\/+$/, "") || "";
} }
@ -33,12 +32,8 @@ export async function GET(request: NextRequest) {
"userId", "userId",
request.nextUrl.searchParams.get("userId") || "", request.nextUrl.searchParams.get("userId") || "",
); );
const { token } = requireLogin(request); // Ensure the user is logged in before making the upstream request
const response = await fetch(upstreamUrl, { const response = await fetch(upstreamUrl, {
method: "GET", method: "GET",
headers: {
authorization: `Bearer ${token}`,
},
}); });
const body = await response.text(); const body = await response.text();
return new NextResponse(body, { return new NextResponse(body, {

6
src/app/api/recommend-banners/route.ts

@ -1,5 +1,4 @@
import { NextRequest, NextResponse } from "next/server"; import { NextRequest, NextResponse } from "next/server";
import { requireLogin } from "@/app/api/_auth";
const UPSTREAM_RECOMMEND_BANNER_LIST_PATH = const UPSTREAM_RECOMMEND_BANNER_LIST_PATH =
"/api_client/anime/recommendBanner/list"; "/api_client/anime/recommendBanner/list";
@ -15,8 +14,6 @@ export async function GET(request: NextRequest) {
{ status: 500 }, { status: 500 },
); );
} }
const { token } = requireLogin(request);
console.log("token", token);
const upstreamUrl = new URL(UPSTREAM_RECOMMEND_BANNER_LIST_PATH, baseUrl); const upstreamUrl = new URL(UPSTREAM_RECOMMEND_BANNER_LIST_PATH, baseUrl);
upstreamUrl.searchParams.set( upstreamUrl.searchParams.set(
"origin", "origin",
@ -25,9 +22,6 @@ export async function GET(request: NextRequest) {
const response = await fetch(upstreamUrl, { const response = await fetch(upstreamUrl, {
method: "GET", method: "GET",
headers: {
authorization: `Bearer ${token}`,
},
}); });
const body = await response.text(); const body = await response.text();
console.log("Upstream response body:", body); console.log("Upstream response body:", body);

2
src/proxy.ts

@ -11,6 +11,8 @@ const AUTH_EXEMPT_API_PREFIXES = [
"/api/auth/", "/api/auth/",
"/api/captcha/", "/api/captcha/",
"/api/content/", "/api/content/",
"/api/recommend-banners",
"/api/canvas-templates",
]; ];
function hasLoginToken(request: NextRequest): boolean { function hasLoginToken(request: NextRequest): boolean {

Loading…
Cancel
Save