【问题标题】:How do I find Mediawiki OAUTH callback URL (node passport-mediawiki-oauth)如何找到 Mediawiki OAUTH 回调 URL(节点 passport-mediawiki-oauth)
【发布时间】:2015-09-11 09:50:19
【问题描述】:

我正在尝试让我的节点网页针对我们的内部 mediawiki 系统进行身份验证,并且没有使用节点 passport-mediawiki-oauth。

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

我已尝试设置 callbackURL (http://127.0.0.1:30005/auth/mediawiki/callback),我已尝试将其留空以使用默认设置的那个(与上面在 mediawiki 上的 Oauth 提案中提供的相同)。

我会进一步调查,但我已经进行了 mediawiki 调试,没有任何信息。我试图找到关于问题 E003 的信息,没有信息。如果我至少可以弄清楚它试图使用哪个 URL 来提供反馈,看看这是否是问题所在,但我完全被卡住了。

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

consumerKey: "xxxxxxxxxxxxxxxxxxxxxxxx",
consumerSecret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
callbackURL: "http://127.0.0.1:30005/auth/mediawiki/callback",
requestTokenURL: 'http://192.168.0.51:8081/dbfswiki/index.php?title=Special:OAuth/initiate',
accessTokenURL: 'http://192.168.0.51:8081/dbfswiki/index.php?title=Special%3AOAuth%2Ftoken',
userAuthorizationURL: 'http://192.168.0.51:8081/dbfswiki//wiki/Special:OAuth/authorize',
baseURL: "http://192.168.0.51:8081/dbfswiki/index.php/Special:OAuth/authorize"

身份验证代码由此处理:

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);
        });
    }
));

【问题讨论】:

  • The OAuth MediaWiki extension 要求您提前指定回调 URL,或者至少指定其前缀(如域名),作为安全措施。所以你需要在 MediaWiki 中注册一个新的消费者,在那里设置回调 URL,然后确保你的节点模块要么发送匹配的回调 URL,要么什么都不发送。如果您对如何使错误消息更有用有任何建议,请随时file a bug

标签: oauth mediawiki mediawiki-api


【解决方案1】:

所以向前一步(向后一步)。经过多次摆弄,我想我找到了问题所在。在我认为问题出在回调 URL 的地方,事实证明是授权 URL 是错误的。 passport-mediawiki-oauth 似乎已经添加了两次 OAuth/dbfswiki/index.php/Special:OAuth/authorizewiki/Special:OAuth/authorize?oauth_token=&oauth_consumer_key= 449c71620457972e86ef20e083ccb87b在模块代码中修复了这个问题,只是遇到了一个新问题,我知道得到一个接受框,(应用程序......想要基本权限,当我按下确定时,我得到一个你的输入有问题)

【讨论】:

    猜你喜欢
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 2013-04-24
    • 1970-01-01
    • 2016-11-12
    • 2017-10-12
    • 1970-01-01
    相关资源
    最近更新 更多