如何从mediawiki / xpressengine获取当前登录的用户名?

时间:2016-01-29 18:39:12

标签: google-chrome-extension mediawiki

我正在编写Chrome扩展程序。

我想要做的是:检查用户当前是否登录。如果是,请获取他/她的用户名。如果没有,请显示登录按钮。

我想同时从不同的服务获取登录状态:mediawiki和xpressengine。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果用户已经登录,您可以使用api检查,如果是,则获取用户名。例如。如果您在网络浏览器中打开https://www.mediawiki.org/w/api.php?action=query&meta=userinfo,则可以看到未登录用户的以下回复:

{
    "batchcomplete": "",
    "query": {
        "userinfo": {
            "id": 0,
            "name": "X.X.X.X",
            "anon": ""
        }
    }
}

请参阅nameanon键。 name密钥始终包含用户名(在这种情况下是请求客户端的ip),另一方面,anon密钥仅附加到userinfo对象,如果用户是匿名的(所以你可以放心地假设,如果密钥存在,用户是匿名的,在响应的较新格式化版本中,这将被布尔值替换,而不是作为值的空字符串)。

以下来自登录用户

{
    "batchcomplete": "",
    "query": {
        "userinfo": {
            "id": 000000,
            "name": "XXXXXXXXX"
        }
    }
}

查看丢失的anon密钥和更改的name密钥。此外,ìd键现在包含真实用户ID,而不是默认0(未分配给任何现有用户)。

如果您想使用用户名和密码登录用户,可以使用the login api endpoint

但是,如果您想为其他应用程序(例如您的扩展程序)提供登录可能性,您可能需要使用OAuth,而不是login / userinfo api,这需要用户为您提供其用户名和密码。帐户,这可能不是获得信任的最佳方法:)可以在OAuth help page找到维基媒体wikis(mediawiki.org,wikipedia.org,...)中使用的OAuth系统的信息,可以在help page for developersthe extension page上找到开发人员的信息。