我創建了一個檔案夾 config 并在其中創建了passport.js檔案,當我嘗試運行我的代碼時,它包含所有配置passport模塊我收到了這個錯誤,TypeError: Cannot read property 'use' of undefined
指的是這行代碼passport.use(new LocalStrategy(function(username, password, done) {
護照.js 檔案:
var express = require('express');
const LocalStrategy = require('passport-local').Strategy;
const User = require('../server/model/userModel');
const bcrypt = require('bcrypt');
var passport = require('passport');
module.exports = function(passport) {
// Local Strategy
passport.use(new LocalStrategy(function(username, password, done) {
// Match Username
let query = { username: username };
User.findOne(query, function(err, user) {
/*
if (err) throw err;
if (!user) {
return done(null, false, { message: 'No user found' });
}
*/
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
// Match Password
bcrypt.compare(password, user.password, function(err, isMatch) {
if (err) throw err;
if (isMatch) {
return done(null, user);
} else {
return done(null, false, { message: 'Wrong password' });
}
});
});
}));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
}
uj5u.com熱心網友回復:
您對同一個名稱使用兩個不同的參考。
var passport = require('passport');
在這里,您定義了passport 變數。
module.exports = function(passport) {
在這里,您將引數名稱定義為passport。在此背景關系中使用通行證將參考引數
passport.use(...
從定義的變數呼叫引數的 use 方法而不是passport.use 方法。考慮將函式引數名稱更改為passport,
可能_passport
?
module.exports = function(passport) {
//to
module.exports = function(_passport) {
uj5u.com熱心網友回復:
你有沒有初始化:
app.use(passport.initialize()); app.use(passport.session());
要在 Express 或基于 Connect 的應用程式中使用 Passport,請使用所需的 Passport.initialize() 中間件對其進行配置。如果您的應用程式使用持久登錄會話(推薦,但不是必需的),則還必須使用passport.session() 中間件。
passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
if (!user.verifyPassword(password)) { return done(null, false); }
return done(null, user);
});
}
));
https://github.com/jaredhanson/passport
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/354104.html