node.js - 为什么我会收到错误 JwtStrategy requires a secret or key?
问题描述
我收到此错误“TypeError:JwtStrategy 需要密钥或密钥”,但我不知道如何修复它。我能做些什么来修复它?
(node:46218) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added to [Bus]. Use emitter.setMaxListeners() to increase limit
/mnt/data/Workspace/Development/comichaven/api/node_modules/passport-jwt/lib/strategy.js:45
throw new TypeError('JwtStrategy requires a secret or key');
^
TypeError: JwtStrategy requires a secret or key
at new JwtStrategy (/mnt/data/Workspace/Development/comichaven/api/node_modules/passport-jwt/lib/strategy.js:45:15)
at module.exports (/mnt/data/Workspace/Development/comichaven/api/config/passport.js:14:9)
at Object.<anonymous> (/mnt/data/Workspace/Development/comichaven/api/server.js:40:29)
at Module._compile (internal/modules/cjs/loader.js:956:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
at Module.load (internal/modules/cjs/loader.js:812:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)
at internal/main/run_main_module.js:17:11
[nodemon] app crashed - waiting for file changes before starting...
我试过的
- 重命名变量 opts
- 检查所以变量命名相同
- 尝试使用 dotenv
- 用字符串替换 keys.secretOrKey
护照.js
const JwtStrategy = require('passport-jwt').Strategy;
const ExtractJwt = require('passport-jwt').ExtractJwt;
const mongoose = require('mongoose');
const User = mongoose.model("users");
const keys = require("./keys")
const opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
opts.secretKey = keys.secretOrKey;
module.exports = passport => {
passport.use(
new JwtStrategy(opts, (jwt_payload, done) => {
User.findById(jwt_payload.id)
.then(user => {
if (user) {
return done(null, user)
}
return done(null, false)
})
.catch(err => {
console.log(err)
});
})
)
}
键.js
module.exports = {
secretOrKey: 'secret'
};
解决方案
您必须在选项中为 secretkey 使用正确的密钥名称。你应该这样写:-
opts.secretOrKey = keys.secretOrKey
错误地你写了 opts.secretKey。希望这可以帮助!
推荐阅读
- python - 此 python 脚本中缺少输入
- python - Beautiful Soup AttributeError: 'NoneType' 对象没有属性 'find_all' 即使网页结构相同
- terminal - 终端关闭时终止活动进程
- firebase - 为什么这个 Firebase 查询有效而另一个无效
- haskell - 使用多行在 Haskell 函数中定义变量
- openmodelica - 在模型中导入 MSL 中包含的现有 Modelica 模块
- javascript - 数据表中带括号的正则表达式
- python - 我的 RGB 到 HEX 转换器出了什么问题
- c# - 如何裁剪具有平滑边框的图像的椭圆区域
- c++ - C ++,使用模板调用成员函数上的线程