我正在尝试将护照服务添加到我的应用中,但是我收到以下错误, 我已经安装了所有依赖项并尝试搜索此错误但没有,请帮助
passport.use(new JwtStrategy(opts, function(jwt_payload, done){
TypeError: passport.use is not a function
at module.exports (/home/udit/Goserv/app/config/passport.js:11:14)
at Object.<anonymous> (/home/udit/Goserv/app/server/server.js:9:45)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:442:10)
at startup (node.js:136:18)
at node.js:966:3
这是passport.js文件:
var JwtStrategy = require('passport-jwt').Strategy,
ExtractJwt = require('passport-jwt').ExtractJwt;
var User = require('../model/user.js');
var config = require('../config/database');
module.exports = function(passport){
var opts = {};
opts.secretOrKey = config.secret;
opts.jwtFromRequest = ExtractJwt.fromAuthHeader();
passport.use(new JwtStrategy(opts, function(jwt_payload, done){
User.find({id: jwt_payload.id}, function(err, user){
if (err) {
return done(err, false);
}
if (user) {
return done(null, user);
} else {
return done(null, false);
}
})
}));
}
答案 0 :(得分:2)
如果这样导入,你会得到这个错误
import * as passport from 'passport';
应该
import passport from 'passport';
答案 1 :(得分:1)
您需要使用以下命令从app.js文件中要求passport.js:
require('./config/passport')(passport);
app.js文件中所有与护照相关的命令应为:
const passport = require('passport');
app.use(passport.initialize());
app.use(passport.session());
require('./config/passport')(passport);