gpt4 book ai didi

javascript - 不合逻辑的 Passport 验证方法参数

转载 作者:太空宇宙 更新时间:2023-11-04 03:29:42 26 4
gpt4 key购买 nike

尝试去理解 https://github.com/jaredhanson/passport/blob/master/lib/middleware/authenticate.js ,第 57 行。

我不明白为什么 Passport 验证方法有 4 个参数:

module.exports = function authenticate(passport, name, options, callback){/*code*/}

在实践中它的使用方式如下:

passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login' });

passport.authenticate('local', function(req, res));

那么为什么方法定义中的第一个参数“passport”没有干扰呢?由于策略名称作为第一个参数传递,因此它应该映射到 Passport 而不是名称。

最佳答案

您错过了中间层 here :

Authenticator.prototype.authenticate = function(strategy, options, callback) {
return this._framework.authenticate(this, strategy, options, callback);
};

passport 变量是 Authenticator 类的实例,因此上面的方法表示 passport.authenticate()。正如您所看到的,它将对自身的引用作为第一个参数传递给您所引用的函数(由 this._framework.authenticate 引用)。

关于javascript - 不合逻辑的 Passport 验证方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39750642/

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