如何将登录插件写入MediaWiki

时间:2016-11-01 06:48:54

标签: mediawiki

我想连接到我们自己的oauth2服务器,所以我写了一个oauth2登录扩展,当我从oauth2服务器获取帐户信息时有代码。

$user = User::newFromName($username);
$user->setEmail($email);
$user->load();

if (!($user instanceof User && $user->getId())) {
    $user->addToDatabase();
}

$user->setToken();
$user->setCookies();
$this->getContext()->setUser($user);
$user->saveSettings();

如果用户不存在,它将创建用户数据,但如果您没有通过点击注销按钮注销,有时登录将失败,我完全没有解决此问题的线索。

我发现MediaWiki已登录API,但它需要一个密码,似乎没有用户自动创建功能,是否有任何完成它的参考?

1 个答案:

答案 0 :(得分:0)

在MediaWiki 1.27+中,应该通过编写PrimaryAuthenticationProvider来完成登录(在1.27之前,对于非基于密码的登录没有非hacky方法)。请参阅该类中的内联文档,或this patch,其中提供了与OAuth1类似的功能。