openai api 密钥在部署时自动轮换

问题描述 投票:0回答:3

我正在reactjs中使用openai gpt api构建一个网页。我将 api 密钥保存在 .env 文件中,然后 gitignored 它。我用 gh-pages 部署了我的代码,但 openai 检测到它并自动旋转密钥。如何正确使用api key?

const DEFAULT_PARAMS = {
            model: "gpt-3.5-turbo",
            messages: [{"role": "user",
                        "content": message
            }],
            temperature: 1,
            max_tokens: 1000
        };
        const params_ = {...DEFAULT_PARAMS};
        const result = await fetch('https://api.openai.com/v1/chat/completions', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer ' + String(process.env.REACT_APP_OPENAI_API_KEY)
            },
            body: JSON.stringify(params_)
        });
        const data = await result.json()
reactjs api api-key openai-api
3个回答
0
投票

您可以参考有关保护 GitHub Pages 上托管的静态网站上的机密的问题

简短的回答:这是不可能的,因为所有内容都在代码中公开。

您需要使用另一种方式来部署您的网站。 例如,像 NextJS 这样的框架。


0
投票

我使用nestjs框架,apiKey也旋转了.. enter image description here


0
投票

这对我有用

首先,我使用 crypto-js 加密我的 API 密钥

 const encryptText = (plainText: string): string => {
  return CryptoJS.AES.encrypt(plainText, secretKey).toString();
    };

得到结果后,我复制它,然后删除上面的代码

然后我在需要 api 密钥的文件上执行此操作

const decryptText = (encryptedText: string): string => {
    const bytes = CryptoJS.AES.decrypt(encryptedText, "your password");
    return bytes.toString(CryptoJS.enc.Utf8);
  };



Authorization: `Bearer ${ decryptText(encryptedAPI)}`
© www.soinside.com 2019 - 2024. All rights reserved.