【发布时间】:2022-01-16 08:34:26
【问题描述】:
我正在尝试将护照用于我的 javascript 代码。但是,我收到“JwtStrategy 需要秘密或密钥错误”。我正在与我的朋友在这方面进行合作。虽然他的运行良好,但我的却没有,我不知道为什么。他用windows,我用mac,供参考。
我们的 jwt.js 代码:
const JwtStrategy = require('passport-jwt').Strategy;
const ExtractJwt = require('passport-jwt').ExtractJwt;
var User = require("./models/user");
const opts = {}
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
opts.secretOrKey = process.env.JWT_SECRET_KEY;
module.exports = new JwtStrategy(opts, async (jwt_payload, done) => {
const user = await User.findOne({email: jwt_payload.email});
if (!user) {
return done(null, false)
}
return done(null, user);
})
错误信息:
TypeError: JwtStrategy requires a secret or key
at new JwtStrategy (/Users/editedUser/Desktop/frods/server/node_modules/passport-jwt/lib/strategy.js:45:15)
at Object.<anonymous> (/Users/editedUser/Desktop/frods/server/jwt.js:10:18)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (/Users/editedUser/Desktop/frods/server/app.js:9:17)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
【问题讨论】:
-
它从环境变量中获取密钥。你的设置好了吗?(JWT_SECRET_KEY)
-
是的,我将它设置在与服务器文件相同的文件夹中的 .env 文件中。
标签: javascript node.js jwt passport.js