【问题标题】:Express API | Heroku - JWT (error - secret or private key must have a value)快递API | Heroku - JWT(错误 - 密钥或私钥必须有值)
【发布时间】:2022-01-27 02:21:58
【问题描述】:

我将我的 API 部署到 Heroku 以及当我尝试使用它时(登录)。我遇到了一些错误。

我的代码 -

const express = require("express");
const app = express();
const mongoose = require("mongoose");
const dotenv = require("dotenv");
const cors = require("cors");

// IMPORT FILES

const user = require("./routes/user");

// MONGOOSE CONNECTION
mongoose.connect(
  "CONNECTION URL HERE",
  { useNewUrlParser: true },
  () => {
    console.log("Connected to DB");
  }
);

// MIDDLEWARE CONFIGS
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
mongoose.Promise = global.Promise;

// ROUTES REDIRECTION

app.use("/", user);

// SERVER
const server = app.listen(process.env.PORT || 8080, () => {
  const port = server.address().port;
  console.log(`Server is running on port ${port}`);
});

JWT 文件

const jwt = require("jsonwebtoken");

module.exports = function (req, res, next) {
  const token = req.header("token");
  if (!token) return res.status(401).send("please login again");

  try {
    const verify = jwt.verify(token, "JWT SECRET HERE");
    req.user = verify;
    next();
  } catch (err) {
    res.status(400).send("invalid token");
  }
};

一些错误图片-

Error in Heroku logs --tails

error is browser

PS:我有 .env 作为变量,但因为我收到应用程序错误,所以为了 delpoyment 把它们取出来了。 谢谢!感谢您的帮助。

【问题讨论】:

    标签: node.js api express heroku


    【解决方案1】:

    您是否已将环境变量添加到 heroku config vars 中?

    如果没有,请按照 heroku 文档进行操作。

    https://devcenter.heroku.com/articles/config-vars

    您可以使用 heroku cli 或使用 heroku 仪表板添加变量。有关详细说明,请参阅文档。

    【讨论】:

      猜你喜欢
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 2016-03-04
      相关资源
      最近更新 更多