gpt4 book ai didi

javascript - 为什么在 Passport.deserializeUser 函数中再次检查用户

转载 作者:行者123 更新时间:2023-12-02 23:17:04 26 4
gpt4 key购买 nike

我读过几篇关于如何使用passport.js的文章。
我想知道为什么他们总是在 Passport.deserializeUser 函数中再次检查用户,如下所示:

passport.deserializeUser((id, done) => {
console.log('Inside deserializeUser callback')
console.log(`The user id passport saved in the session file store is: ${id}`)
const user = users[0].id === id ? users[0] : false;
done(null, user);
});

用户的凭据应已在登录阶段进行检查,并正确存储在 session 中。他们为什么又这样做?

最佳答案

据我了解源代码,deserializeUser 应该返回一个 User 对象。

因此,您给出的示例只是检查 session cookie 中存储的 id 是否与未知数组 users 中的第一个用户的 id 匹配,如果匹配则返回该用户。

source code ,他们又举了一个例子:

passport.deserializeUser(function(id, done) {
User.findById(id, function (err, user) {
done(err, user);
});
});

这里,此代码将从模型 User 检索值为 id 的元素。此函数 deserializeUser 取决于您序列化用户 session 的方式以及在 cookie 中存储的数据。

人们很可能只将用户 ID 存储在 cookie 中,然后通过从数据库检索相应的数据来获取用户的完整信息。

关于javascript - 为什么在 Passport.deserializeUser 函数中再次检查用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57126002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com