节点js和护照验证错过护照会话

时间:2017-02-01 10:52:42

标签: mongodb nodes passport.js

我有 app.js ,如下所示

var express = require('express'),
    path = require('path'),
    favicon = require('serve-favicon'),
    logger = require('morgan'),
    cookieParser = require('cookie-parser'),
    bodyparser = require('body-parser'),
    db = require('./model/db');
var app=express();
var dbConfig = require('./db.js');
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
    mongoose.createConnection(dbConfig.url);
var passport = require('passport');

    app.use(bodyparser.urlencoded({
    extended:true
    }));
var expressSession = require('express-session');
var flash    = require('connect-flash');
app.use(expressSession({
    secret: 'crackalackin',
    resave: true,
    saveUninitialized: true,
    cookie : { secure : false, maxAge : (4 * 60 * 60 * 1000) }, // 4 hours
}));
app.use(passport.initialize());
app.use(passport.session());

// Using the flash middleware provided by connect-flash to store messages in session
 // and displaying in templates
var flash = require('connect-flash');
app.use(flash());

// Initialize Passport
var initPassport = require('./passport/init');
initPassport(passport);

var routes = require('./routes/index')(passport);
app.use('/', routes);

/// catch 404 and forward to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});
        app.listen(6061,function(){
    console.log("started on port 6061");
});

/passport/init.js

var login = require('./login');
var signup = require('./signup');
var User = require('../models/user');

module.exports = function (passport) {

    // Passport needs to be able to serialize and deserialize users to support persistent login sessions
    passport.serializeUser(function (user, done) {
        done(null, user._id);
    });

    passport.deserializeUser(function (id, done) {
        try {
            User.getById(id, function (err, user) {
                done(err, user);
            });
        } catch (ex) {

        }
    });

    // Setting up Passport Strategies for Login and SignUp/Registration
    login(passport);
    signup(passport);

}

当我在验证函数的/passport/login.js中写console.log(req.session)时。

我得输出,如

Session {
  cookie: 
   { path: '/',
     _expires: 2017-02-01T14:10:38.523Z,
     originalMaxAge: 14400000,
     httpOnly: true,
     secure: false } }

我想念

passport: {}

所以我可以登录但不能生成护照会话。

所以 isAuthenticated 功能说“login plase”。 我如何在这里管理会议。

0 个答案:

没有答案