【问题标题】:Using a config file for JWT secret in Node.js在 Node.js 中使用 JWT 机密的配置文件
【发布时间】:2017-01-03 01:58:11
【问题描述】:

我正在学习 Node.js,在实现 JWT 时,我想放置一个单独的 config.js 文件来设置密钥以生成和验证令牌,但我遇到了麻烦。

首先我创建如下配置文件:

// JWT config
module.exports.jwt_secret = 'mysecret';

然后我在 API 端点要求它为:

const jwt_secret = require('../../../../../config');

最后,我尝试如下使用它:

jwt.verify(token, (jwt_secret), function(err, decoded) { ... }

但它不起作用,所以我尝试了一个带有 jwt_secret 的 console.log,我得到了这个:

{ jwt_secret: 'mysecret' }

我检查了代码并在 Stack Overflow 上进行了搜索,但我不知道如何解决这个问题。我知道这可能很明显,但正如我所说,我在编程方面还很陌生,而且我正在学习。

提前谢谢你。

【问题讨论】:

  • 预期的行为是什么或出了什么问题?好像你 jwt_secret 是在需要配置文件时定义的。

标签: javascript node.js variables jwt


【解决方案1】:

快速查看node-jsonwebtoken api,verify 似乎期望一个字符串作为第二个参数。您设置导出和要求的方式意味着您的变量 jwt_secret 是配置模块中的整个导出对象,而不是字符串。尝试将其更改为

jwt.verify(token, jwt_secret.jwt_secret, function(err, decoded) { ... }

如果可行,您可能需要将 require 语句修改为类似

const config = require('some/path/config');

然后使用config.jwt_secret 作为参数。不过,这只是风格,做适合您项目的事情。

【讨论】:

  • 谢谢!效果很好,我添加了您评论的样式。
猜你喜欢
  • 2018-11-29
  • 2021-06-03
  • 2021-09-08
  • 2017-06-05
  • 1970-01-01
  • 2016-05-15
  • 2022-01-24
  • 1970-01-01
  • 2013-01-22
相关资源
最近更新 更多