gpt4 book ai didi

javascript - 试图理解为什么调用末尾有额外的括号

转载 作者:行者123 更新时间:2023-12-02 23:33:55 25 4
gpt4 key购买 nike

可能是一个愚蠢的问题,我正在尝试研究 OAuth 的示例,并希望在添加到自己的代码之前准确了解发生了什么。

示例是使用 passport-azure-adnodeexpress

正在定义路由并调用passport.authenticate

app.get('/login',
(req, res, next) => {
passport.authenticate('azuread-openidconnect',
{
response: res,
resourceURL: config.resourceURL,
failureRedirect: '/'
})(req, res, next); // <-- Here is what I am stuck on.
},
(req, res) => {
log.info('Login was called in the Sample');
res.redirect('/');
});

我试图理解紧随身份验证之后的(req, res, next);

感谢任何帮助,或有关此语法的理论/文档的链接。

最佳答案

这是因为 passport.authenticate 返回一个函数(中间件)来处理请求,因此您将请求传递给此处的实际处理程序

像这样:

function authenticate(someArg) {
return function (req, res, next) {
// the handler
}
}

这是您提供的示例的简化版本,没有额外显式传递参数

app.get('/login', passport.authenticate('azuread-openidconnect', { 
response: res,
resourceURL: config.resourceURL,
failureRedirect: '/'
}), (req, res) => {
log.info('Login was called in the Sample');
res.redirect('/');
});

关于javascript - 试图理解为什么调用末尾有额外的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56368223/

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