From 77c4055c72fc5d0e0becaf3c410ab700f26c220b Mon Sep 17 00:00:00 2001
From: lrj <owen.stl@gmail.com>
Date: 星期六, 04 十月 2025 18:57:09 +0800
Subject: [PATCH] fix(auth): 避免在 JWT 过滤器中消费原始 GraphQL 请求体,防止下游读取为空引发 400
---
web/src/api/media.js | 55 +++----------------------------------------------------
1 files changed, 3 insertions(+), 52 deletions(-)
diff --git a/web/src/api/media.js b/web/src/api/media.js
index ac6a772..c351e39 100644
--- a/web/src/api/media.js
+++ b/web/src/api/media.js
@@ -38,50 +38,12 @@
`;
export const getMediasByTarget = async (targetType, targetId) => {
- // 鑾峰彇JWT token
- const { getToken } = await import('@/utils/auth');
- const token = getToken();
- const headers = { 'Content-Type': 'application/json' };
- if (token) {
- headers['Authorization'] = `Bearer ${token}`;
- }
-
- const res = await fetch(GRAPHQL_ENDPOINT, {
- method: 'POST',
- headers: headers,
- body: JSON.stringify({
- query: MEDIAS_BY_TARGET_QUERY,
- variables: { targetType, targetId }
- })
- });
- const result = await res.json();
- if (result.errors) {
- throw new Error(result.errors[0].message);
- }
+ const result = await graphqlRequest(MEDIAS_BY_TARGET_QUERY, { targetType, targetId });
return result.data.mediasByTarget || [];
};
export const saveMedia = async (input) => {
- // 鑾峰彇JWT token
- const { getToken } = await import('@/utils/auth');
- const token = getToken();
- const headers = { 'Content-Type': 'application/json' };
- if (token) {
- headers['Authorization'] = `Bearer ${token}`;
- }
-
- const res = await fetch(GRAPHQL_ENDPOINT, {
- method: 'POST',
- headers: headers,
- body: JSON.stringify({
- query: SAVE_MEDIA_MUTATION,
- variables: { input }
- })
- });
- const result = await res.json();
- if (result.errors) {
- throw new Error(result.errors[0].message);
- }
+ const result = await graphqlRequest(SAVE_MEDIA_MUTATION, { input });
return result.data.saveMedia;
};
@@ -215,17 +177,6 @@
// 缁熶竴鐨� V2 淇濆瓨鎺ュ彛锛堣繑鍥� { success, message, mediaId }锛夛紝绀轰緥锛�
// await saveMediaV2({ targetType: 'player', targetId: 123, path: 'avatar/xxx.jpg', fileName: 'avatar.jpg', fileExt: 'jpg', fileSize: 2048, mediaType: 1 })
export const saveMediaV2 = async (input) => {
- const res = await fetch(GRAPHQL_ENDPOINT, {
- method: 'POST',
- headers: { 'Content-Type': 'application/json' },
- body: JSON.stringify({
- query: SAVE_MEDIA_V2_MUTATION,
- variables: { input }
- })
- });
- const result = await res.json();
- if (result.errors) {
- throw new Error(result.errors[0].message);
- }
+ const result = await graphqlRequest(SAVE_MEDIA_V2_MUTATION, { input });
return result.data.saveMediaV2;
};
\ No newline at end of file
--
Gitblit v1.8.0