首页 > 解决方案 > 使用 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...

标签: javascriptreactjsjwtbackend

解决方案


推荐阅读