فهرست منبع

Merge pull request #1852 from benphelps:enhancement/extra-headers

Enhancement: support extra headers in widgets
shamoon 1 سال پیش
والد
کامیت
a58eabdb9b
2فایلهای تغییر یافته به همراه7 افزوده شده و 4 حذف شده
  1. 4 0
      src/pages/api/services/proxy.js
  2. 3 4
      src/utils/proxy/handlers/generic.js

+ 4 - 0
src/pages/api/services/proxy.js

@@ -55,6 +55,10 @@ export default async function handler(req, res) {
           req.query.endpoint = `${req.query.endpoint}?${query}`;
           req.query.endpoint = `${req.query.endpoint}?${query}`;
         }
         }
 
 
+        if (mapping?.headers) {
+          req.extraHeaders = mapping.headers;
+        }
+
         if (endpointProxy instanceof Function) {
         if (endpointProxy instanceof Function) {
           return endpointProxy(req, res, map);
           return endpointProxy(req, res, map);
         }
         }

+ 3 - 4
src/utils/proxy/handlers/generic.js

@@ -20,11 +20,10 @@ export default async function genericProxyHandler(req, res, map) {
     if (widget) {
     if (widget) {
       const url = new URL(formatApiCall(widgets[widget.type].api, { endpoint, ...widget }));
       const url = new URL(formatApiCall(widgets[widget.type].api, { endpoint, ...widget }));
 
 
-      let headers;
+      const headers = req.extraHeaders ?? {};
+      
       if (widget.username && widget.password) {
       if (widget.username && widget.password) {
-        headers = {
-          Authorization: `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`,
-        };
+        headers.Authorization = `Basic ${Buffer.from(`${widget.username}:${widget.password}`).toString("base64")}`;
       }
       }
 
 
       const params = {
       const params = {