【问题标题】:How to set up environment variables on Heroku? [duplicate]如何在 Heroku 上设置环境变量? [复制]
【发布时间】:2020-08-24 06:25:28
【问题描述】:

当我在 Heroku 上部署 Node.js API 时,它给了我一个错误的响应。

res.json({"user":user,"auth-token":token});

localhost:3000/auth/login

{
"user": {
 "email": "name1@gmail.com",
 "username": "name1",
 "fullname": "fullname 1"
},
"auth-token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOiI1ZjMxN2I0OTFhZTc4YzFjOWNjMjZjZWUiLCJ1c2VybmFtZSI6Im5pa2hpbGt1bWEiLCJmdWxsbmFtZSI6Ik5pa2hpbCBrdW1hciBTaW5naCIsImlhdCI6MTU5ODI0OTA3M30"
}

在heroku上部署后

name.herokuapp.com/auth/login

{
"user": {
 "email": "name1@gmail.com",
 "username": "name1",
 "fullname": "fullname 1"
}
}

【问题讨论】:

  • 你能展示一下你是如何获得令牌的代码吗?
  • 你能给我看看 .env 文件和令牌生成代码吗?
  • 看起来token 是假的,因此它从最终响应中删除。部署在 heroku 上时,能否检查 JWT 令牌生成是否正常工作?
  • @Prathamesh 更感谢。出现问题是因为我在 .env 文件 jwt.verify(token,process.env.JWT_SECRET_KEY); 中使用了 jwt 密钥提及,而我只是用简单的字符串 jwt.verify(token,"sdfahflkhow8e90fr980"); 替换它工作正常。
  • 嘿,我添加了一个解决方案!不要在 Heroku 上上传 .env 文件。 Heroku 有Config Vars

标签: node.js express heroku httpresponse heroku-api


【解决方案1】:

按照以下步骤操作

安装包名为dotenv

npm install dotenv

将该模块加载到您使用类似环境变量的主文件中。例如process.env.PORT

require("dotenv").config();
const express = require("express");
const mongoose = require("mongoose");
  1. 现在登录 Heroku 帐户

  2. 转到您的项目仪表板

  3. 进入设置标签

  4. 现在在此处添加您的环境变量

现在将您的 JWT_SECRET_KEY 键和值放到那里的下一个文本框中。

注意:在此处输入相同的名称,如 .env 文件

希望这会奏效!

【讨论】:

    猜你喜欢
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 2016-05-01
    • 2015-08-18
    • 2021-09-03
    相关资源
    最近更新 更多