내 응용 프로그램 인증 사용자에 대한 passport
를 사용 (0.12.7 nodejs) 패스가 정의되지 던져하지만이 같은 가끔 예외를 던져 :여권
ReferenceError: pass is not defined at deserialized (node_modules/passport/lib/authenticator.js:345:7) at app/app.js:89:10
app.js는 다음과 같습니다
var app, bodyParser, config, cookies, cors, e, express, http, keys, localStrategy, logger, multipart, passport, path, router, server, session, sessionStore, sessionUsed, session_store, util, uuid;
express = require('express');
http = require('http');
path = require('path');
session = require('express-session');
cors = require('cors');
session_store = require('sessionstore');
keys = require("keygrip")(['a', 'b']);
bodyParser = require('body-parser');
cookies = require('cookies').express;
passport = require('passport');
uuid = require('node-uuid');
multipart = require('connect-multiparty');
localStrategy = require('passport-local').Strategy;
config = require('./config/config');
util = require('./libs/util');
logger = require('./libs/logger');
sessionStore = session_store.createSessionStore(config.getMemCache());
sessionUsed = session({
secret: config.getCookieSecret(),
genid: function() {
return uuid.v4();
},
cookie: {},
saveUninitialized: true,
resave: true,
store: sessionStore
});
app = express();
router = express.Router();
app.set('port', process.env.PORT || config.getServerPort());
app.set('views', __dirname + '/../app/public');
app.set('view engine', 'html');
app.use(sessionUsed);
app.use(cors());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(multipart({
maxFilesSize: 2 * 1024 * 1024
}));
app.use(express["static"](path.join(__dirname, '/../app/public')));
app.use(cookies(keys));
app.use(passport.initialize());
app.use(passport.session());
passport.use('local', new localStrategy({
passReqToCallback: true
}, util.checkUserPassword));
passport.serializeUser(function(user, done) {
return done(null, user);
});
passport.deserializeUser(function(user, done) {
return done(null, user);
});
require('./routes/router')(app, router, passport);
server = http.createServer(app);
try {
server.listen(app.get('port'), function() {
return logger.info('Express is running at:' + app.get('port'));
});
} catch (_error) {
e = _error;
console.log(e);
}
스크린 샷 코드를 게시하지 마십시오. 실제 코드를 게시하십시오. –
전체 모듈을 게시하거나 적어도 가져 오기가 가능한 부분과 (해당되는 경우)'pass' 변수를 수정하십시오. 또한 'app.js : 89 : 10'의 코드를 게시하십시오. 질문을 업데이트 한 후 여기에 의견을 게시하십시오. –
app.js 코드가 게시되었습니다. 여권 버전은 v0.2.2이고, npm install passport @ 0.2.2'로 모듈을 설치할 수 있으며, 전체 코드를 볼 수 있습니다. – sundq