You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Express服务器安全存储API密钥?含请求示例及非密钥管理器方案

Express后端安全存储API密钥的可行方案及请求示例

一、不用密钥管理器的安全存储方法

1. 项目级环境变量(.env文件)

后端项目里的.env文件和前端完全不同——后端代码运行在服务器端,不会被编译打包到客户端资源中,只要确保这个文件不提交到版本控制系统(加入.gitignore),就是安全的。

步骤:

  • 安装dotenv依赖:npm install dotenv
  • 在项目根目录创建.env文件,写入密钥:
    THIRD_PARTY_API_KEY=your_actual_api_key_here
    
  • 在Express入口文件(比如app.js)顶部加载环境变量:
    require('dotenv').config();
    
  • 在代码中通过process.env.THIRD_PARTY_API_KEY调用密钥。

2. 独立配置文件(排除版本控制)

创建一个不纳入版本管理的配置文件,直接在代码中引入:

  • 新建config/secret.js文件:
    module.exports = {
      thirdPartyApiKey: 'your_actual_api_key_here'
    };
    
  • 在.gitignore中添加config/secret.js,避免提交到仓库
  • 在Express路由或逻辑中引入:
    const { thirdPartyApiKey } = require('./config/secret');
    

3. 服务器系统环境变量

直接在部署后端的服务器系统中设置环境变量,完全脱离项目文件:

  • Linux/macOS服务器,在终端执行:
    export THIRD_PARTY_API_KEY=your_actual_api_key_here
    
    若要永久生效,可写入~/.bashrc或~/.profile
  • Windows服务器,在命令行执行:
    set THIRD_PARTY_API_KEY=your_actual_api_key_here
    
    永久生效可通过系统属性的环境变量面板设置
  • Express中直接通过process.env.THIRD_PARTY_API_KEY读取。

二、请求示例(前端→后端→第三方API)

后端接口实现(Express路由)

const express = require('express');
const axios = require('axios');
const router = express.Router();

// 从环境变量读取密钥
const apiKey = process.env.THIRD_PARTY_API_KEY;

// 前端调用的接口,后端代为请求第三方API
router.get('/fetch-third-party-data', async (req, res) => {
  try {
    const response = await axios.get('https://third-party-api.com/data', {
      headers: {
        'Authorization': `Bearer ${apiKey}` // 用密钥请求第三方
      }
    });
    res.json(response.data);
  } catch (error) {
    res.status(error.response?.status || 500).json({ message: '请求第三方API失败' });
  }
});

module.exports = router;

前端请求示例(原生JS)

fetch('/api/fetch-third-party-data')
  .then(res => res.json())
  .then(data => {
    console.log('第三方数据:', data);
    // 处理数据逻辑
  })
  .catch(err => console.error('请求失败:', err));

内容的提问来源于stack exchange,提问作者ichang3765

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 05:43:22