javascript - 使用 jwt 构建我的授权时出错
问题描述
我从这段代码中得到一个错误并试图解决它。我正在尝试按照相同的教程进行操作,但是消息上也没有此错误。
// authentication middleware
const passport = require("passport");
// how are we going to aunhtenticating
const LocalStatregy = require("passport-local").Strategy;
const JwtStatregy = require("passport-jwt");
const User = require("./models/User");
const cookieExtractor = (req) => {
let token = null;
if (req && req.cookies) {
token = req.cookies["acess_token"];
}
return token;
};
// authorisation works to protect endpoints
passport.use(
new JwtStatregy(
{
// uses custom function to find the cookie
jwtFromRequest: cookieExtractor,
// verifies token is legitimate
secretOrKey: "NoobCoder",
// payload means data we created
},
(payload, done) => {
User.findById({ _id: payload.sub }, (err, user) => {
if (err) return done(err, false);
if (user) return done(null, user);
else return done(null, false);
});
}
)
);
我收到以下错误。我知道我的问题出在我的 JwtStrategy 上,但是如何解决这个问题?那不是构造函数本身,我尝试使用 Promise 和构造函数词,但它不起作用。
[nodemon] app crashed - waiting for file changes before starting...
[nodemon] restarting due to changes...
[nodemon] starting `node server.js`
C:\Users\Sini\Documents\SurfApp\backend\passport.js:20
new JwtStatregy(
^
TypeError: JwtStatregy is not a constructor
at Object.<anonymous> (C:\Users\Sini\Documents\SurfApp\backend\passport.js:20:3)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (C:\Users\Sini\Documents\SurfApp\backend\routes\User.js:5:24)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
[nodemon] app crashed - waiting for file changes before starting...
解决方案
推荐阅读
- javascript - 我可以拆分映射的项目吗?
- linux - 在 ESXi 上安装 vCenter 时出错(安装在 PC 上)
- compilation - Babel-CLI -- 使用 package.json 文件来“监视”一个目录不会更新编译的源代码
- c - 如何告诉 VSCode 在哪里可以找到头文件和源文件
- mongodb - 如何在 MongoDB 中对数组类型的字段进行排序
- pine-script - 松脚本交易 - 部分退出适用于多头但不适用于空头策略
- encryption - Chrome VPN(代理)扩展程序中的加密如何工作?
- python - 第三方 API 如何打开窗口?
- css - Angular:隐藏父组件但显示子组件
- php - 队列未显示就绪作业并且状态处于活动状态