首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MEAN Web开发2en中一些容易混淆的代码

MEAN Web开发2en中一些容易混淆的代码
EN

Stack Overflow用户
提问于 2017-03-14 21:15:49
回答 1查看 28关注 0票数 0

代码语言:javascript
复制
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.Who在“means”一书中的一段代码,可以告诉我passport.authenticate()方法的尾巴:(req,res,next)是什么意思?这是一个闭包吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-14 21:29:09

passport.authenticate()可能会接受“本地”设置(域?)以及用于创建将执行身份验证的新函数的回调。

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

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

可以把它看作是一种使用passport.authenticate()方法创建不同版本的登录名的方法。一个用于“local”,一个用于“otherDomain”,等等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42787053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档