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

如何将JWT密钥存储到环境变量并在其他文件中调用?

正确从.env加载JWT_SECRET到auth.js的方法

你的代码存在几个关键问题,以下是修正步骤和完整实现:

1. 确保依赖安装

首先确认已经安装所需的两个npm包:

npm install dotenv jsonwebtoken

2. 优化.env文件(可选但推荐)

去掉变量值的双引号,避免后续使用时携带多余的引号字符:

JWT_SECRET=secretsecret

3. 修正auth.js代码

// 加载.env环境变量
require('dotenv').config();
// 引入jsonwebtoken模块
const jwt = require('jsonwebtoken');

// 从process.env对象中读取JWT_SECRET
const secret = process.env.JWT_SECRET;
const expiration = '2h';

module.exports = {
  signToken: function({ username, email, _id }) {
    const payload = { username, email, _id };

    return jwt.sign({ data: payload }, secret, { expiresIn: expiration });
  }
};

关键说明

  • dotenv加载.env后,所有环境变量都会挂载到process.env对象上,必须通过process.env.JWT_SECRET的方式访问,直接写JWT_SECRET会触发未定义错误
  • 必须显式引入jsonwebtoken模块,否则jwt.sign方法无法调用
  • .env中的变量值不需要加引号,dotenv会自动解析纯文本值,加引号会导致变量值包含引号本身,可能引发JWT签名验证失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:16:00