我是一个初学者,我在做笔记的过程中一直在做类似的事情
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: false
}));
app.use(passport.initialize())
app.use(passport.session())
app.use(flash());
passport.use(new passportLocal(user.authenticate()))
passport.serializeUser(user.serializeUser())
passport.deserializeUser(user.deserializeUser())
现在,我发现这部分代码很难理解。像这样的事情令人困惑,我可以确定我们正在创建一个会话
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: false
}));
但是resave: false, saveUninitialized: false
的作用是什么?其次是app.use(passport.session)
之类的事物,所有事物看起来都很难以理解。
由于它们似乎都与会议相关,因此如果有人可以向我解释这里的每一行是什么,我将非常感激。
答案 0 :(得分:0)
据我所知,每次u发出请求时都会触发app.use,因此每次都会触发会话。会话的作用是,它为每个用户的每个请求创建一个会话ID。 为用户创建的会话ID与其相关联。Cookie也与该会话ID一起存储(例如用户名或不确定的东西) 因此,每当用户再次访问时,都会显示相应的数据。 如果它们已经在会话中,但是您给了布尔值true,它将继续创建新会话,并且对于重新保存也是如此...创建空会话。
想象一下,如果有人用bot攻击您的网站。 这就是为什么我们布尔值对于两个都为false的原因。 对于password.session ..每个请求都只有会话ID,因此我们需要将其更改为实际使用的登录用户,以便我们可以在每个请求中使用信息 app.use(passport.session)使用用户对象填充会话(当前已记录) 注意:我听说会话默认情况下存储在memorystore中。但是它仅对开发人员有用,可能会导致泄漏,因此在生产阶段要小心。 祝你好运