gpt4 book ai didi

javascript - MEAN Web Development 2en 中的一些代码令人困惑

转载 作者:行者123 更新时间:2023-12-03 04:48:00 24 4
gpt4 key购买 nike

exports.signin = function(req, res, next) {
passport.authenticate('local', function(err, user, info) {
if (err || !user) {
res.status(400).send(info);
} else {
// Remove sensitive data before user.password = undefined; user.salt = undefined;
req.login(user, function(err) {
if (err) {
res.status(400).send(err);
} else {
res.json(user);
}
});
}
})(req, res, next);
};

这是AmosQ.Haviv的《MEAN Web Development》书中的一段代码。谁能告诉我passport.authenticate()'tail:(req, res, next)方法是什么意思?这是一个闭包吗?

最佳答案

passport.authenticate() 可能会接受设置“本地”(域?)和回调来创建一个将进行身份验证的新函数。

这个函数确实会在“local”和回调上创建一个闭包。新的 auth 函数需要 3 个参数:原始 req(uest)、res(ponse) 对象和下一个参数,并立即使用 ( req, res, next ) 语法调用。

因此,这个特定函数很可能会执行登录,然后运行用于创建 auth 函数的回调,将 req 和 res 传递回回调。

将其视为一种使用 Passport.authenticate() 方法来创建您可以使用的不同版本的登录名的方法。一种用于“本地”,一种用于“其他域”,等等。

关于javascript - MEAN Web Development 2en 中的一些代码令人困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42787053/

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