我對於會話做什麼只有最匆忙的概念,並且the official documentation does not help much,因爲它假定我知道會話是什麼,因此也知道爲什麼用戶需要序列化和反序列化。在使用護照和快遞的會話中,序列化和非分散化到底是做什麼的?
下面是我認爲我知道的一個問題:會話就像服務器冰箱上粘貼的便箋,上面寫着「用戶bob很酷,讓他進來」。每當一個新的請求來自bob時,服務器都會檢查這個post-it節點,然後說:「是的,Bob仍然很酷。」
因此,序列化正在寫後便條,而反序列化正在取消它。這裏是我不明白的地方:這段代碼是如何編寫一個post-it節點的,完成了什麼?
passport.serializeUser(function(user, done) {
done(null, user.id);
});
下面的代碼如何丟棄便條? findByID訪問我存儲用戶的數組。爲什麼如果「便籤」剛剛被扔掉就需要訪問?
passport.deserializeUser(function(id, done) {
findById(id, function (err, user) {
done(err, user);
});
});
究竟是什麼流程呢?
這些示例代碼的其餘部分是here