Я использую Serialize и Deserialize?
RedisStore настроен как мой магазин сеансов с Express. Означает ли это, что я НЕ реализую сериализацию и десериализацию? Это произойдет автоматически?
Когда я не реализую эти методы, я получаю следующую экспресс-ошибку - 500 Ошибка: не удалось сериализовать пользователя в сеанс. Когда я их реализую, я не уверен, что положить в Deserialize.
Ниже приведен код, но сеансы не сохраняются. Мне нужно входить в систему каждый раз, когда я посещаю сайт.
Есть ли хороший пример в любом месте NodeJS + Passport + RedisStore?
var sessionStore = new RedisStore({
host: rtg.hostname,
port: rtg.port,
db: redisAuth[0],
pass: redisAuth[1]
});
passport.use(new ForceDotComStrategy({
clientID: clientId,
clientSecret: clientSecret,
callbackURL: myurl
},
function(token, tokenSecret, profile, done) {
console.log(profile);
return done(null, profile);
}
));
appSecure.configure('production', function(){
appSecure.use(allowCrossDomain);
appSecure.use(express.cookieParser(expressSecret));
appSecure.use(express.bodyParser());
appSecure.use(express.methodOverride());
appSecure.set('port', port);
appSecure.use(express.session({ secret: expressSecret, store: sessionStore, key:'expressSid', cookie: { maxAge : 604800, domain:'.domain.com'}}));
appSecure.use(passport.initialize());
appSecure.use(passport.session());
appSecure.use(appSecure.router);
appSecure.use(express.static(__dirname + '/public'));
appSecure.use(express.errorHandler());
});
passport.serializeUser(function( user, done ) {
done( null, user.id);
});
passport.deserializeUser(function( user, done ) {
done( null, user );
});