源文件超过50行,已替换为不超过50行的伪代码。辅助函数为逻辑抽象,不直接执行。
1function addSessionHeaders(request, session) {2 const headers = new Headers(request.headers);3 if (session?.session) headers.set("x-access-token", session.session);4 if (session) headers.set("x-language", normalizeLocale(session.locale));5 return { ...request, headers };6}78function authenticatedQuery(options) {9 function requireAuthentication({ request, controller }) {10 const headers = new Headers(request.headers);11 if (!headers.has("x-access-token")) {12 controller.abort("Missing authentication token");13 }14 return request;15 }1617 const client = getGraphQLClient();18 return client.query({19 ...options,20 requestInterceptors: [21 ...client.getRequestInterceptors(),22 requireAuthentication23 ]24 });25}26// 原模块还包含请求、错误处理、缓存等机制;此处展示认证主线。已确认说明
- 认证头集中在请求层注入
- 显式认证查询缺token会中止
- 显式认证查询缺token会中止
- GraphQL错误日志隐藏变量值