我是否实现了序列化和反序列化?
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 );
});