如何查找Mediawiki OAUTH回调URL(节点passport Mediawiki OAUTH)

如何查找Mediawiki OAUTH回调URL(节点passport Mediawiki OAUTH),oauth,mediawiki,mediawiki-api,Oauth,Mediawiki,Mediawiki Api,我正在尝试让我的节点网页根据我们的内部mediawiki系统进行身份验证,而不是使用节点passport mediawiki oauth 我认为这一切都设置正确,我甚至被转发到mediawiki登录页面,提供登录详细信息,然后从mediawiki获得“未知URL,E003”(在屏幕上,而不是返回代码)。我的问题是,我不知道是什么导致了这个问题 我尝试过设置callbackURL(),我尝试过将其留空以使用默认设置的URL(与上面在mediawiki上的Oauth提案中提供的相同) 我会进一步调查

我正在尝试让我的节点网页根据我们的内部mediawiki系统进行身份验证,而不是使用节点passport mediawiki oauth

我认为这一切都设置正确,我甚至被转发到mediawiki登录页面,提供登录详细信息,然后从mediawiki获得“未知URL,E003”(在屏幕上,而不是返回代码)。我的问题是,我不知道是什么导致了这个问题

我尝试过设置callbackURL(),我尝试过将其留空以使用默认设置的URL(与上面在mediawiki上的Oauth提案中提供的相同)

我会进一步调查,但我已经在mediawiki调试中进行了调试,没有任何信息。我试图找到有关E003问题的信息,没有任何信息。如果我至少能弄清楚它试图用什么URL作为反馈,看看这是否是问题所在,但我完全被卡住了

passport mediawiki oauth的配置为(已删除敏感信息):

身份验证的代码由以下代码处理:

passport.use('mediawiki', new MediaWikiStrategy({
        consumerKey: configAuth.mediawikiAuth.consumerKey,
        consumerSecret: configAuth.mediawikiAuth.consumerSecret ,
        callbackURL: configAuth.mediawikiAuth.callbackURL,
        baseURL: configAuth.mediawikiAuth.baseURL
    },
    function(token, tokenSecret, profile, done) {
        User.findOrCreate({ mediawikiGlobalId: profile.id }, function (err, user) {
            return done(err, user);
        });
    }
));
所以向前一步(向后一步)。我想我已经找到了问题所在。当我认为回调URL是问题所在时,结果证明授权URL是错误的。passport mediawiki oauth似乎添加了oauth两次/dbfswiki/index.php/Special:oauth/authorizewiki/Special:oauth/authorize?oauth_token=&oauth_consumer_key=449C71620457972E86EF20E083CCB87B在模块代码中固定了这一点,但遇到了一个新问题,我知道得到了一个接受框,(应用程序…需要基本权限,当我按“确定”时,我发现您的输入有问题)

要求您指定回调URL,或至少指定其前缀(如域名)作为一种安全措施,您需要提前在MediaWiki中注册一个新的使用者,在那里设置回调URL,然后确保您的节点模块发送匹配的回调URL或不发送任何内容。如果您对如何使错误消息更有用有建议,请随时联系。
passport.use('mediawiki', new MediaWikiStrategy({
        consumerKey: configAuth.mediawikiAuth.consumerKey,
        consumerSecret: configAuth.mediawikiAuth.consumerSecret ,
        callbackURL: configAuth.mediawikiAuth.callbackURL,
        baseURL: configAuth.mediawikiAuth.baseURL
    },
    function(token, tokenSecret, profile, done) {
        User.findOrCreate({ mediawikiGlobalId: profile.id }, function (err, user) {
            return done(err, user);
        });
    }
));