Реализовать ли я сериализацию и десериализацию NodesJS + Passport + RedisStore?
Реализовать ли я сериализацию и десериализацию?
RedisStore настроен как мой магазин сессий с Express. Означает ли это, что я НЕ внедряю сериализацию и десериализацию? Произойдет ли это автоматически?
Когда я неПри реализации этих методов я получаю следующую ошибку Express - Ошибка 500: не удалось сериализовать пользователя в сеанс. Когда я их реализую, яЯ не уверен, что положить в десериализацию.
Код ниже, кажется, работает, но сеансы не сохраняются. Мне нужно входить в систему каждый раз, когда я захожу на сайт.
Есть ли хороший пример где-нибудь 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 );
});