File size: 953 Bytes
0768473
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
require('dotenv').config(); // Load environment variables
const express = require('express');
const proxy = require('express-http-proxy');
const app = express();
const targetUrl = process.env.TARGET_API_URL;

// Retrieve the real API key and bypass key from environment variables
const realApiKey = process.env.OPENAI_API_KEY;
const bypassApiKey = process.env.BYPASS_API_KEY;

app.use('/hf/', proxy(targetUrl, {
  proxyReqOptDecorator: (proxyReqOpts, srcReq) => {
    const authHeader = srcReq.headers['authorization'];

    // Check for the "masked" or "bypass" API key and replace with the real key if necessary
    if (authHeader === `Bearer fake-key` || authHeader === `Bearer ${bypassApiKey}`) {
      proxyReqOpts.headers['authorization'] = `Bearer ${realApiKey}`;
    }

    return proxyReqOpts;
  },
}));

const port = process.env.PROXY_PORT || 7860;
app.listen(port, () => {
  console.log(`Reverse proxy server listening on port ${port}`);
});