我想连接到我们自己的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,但它需要一个密码,似乎没有用户自动创建功能,是否有任何完成它的参考?
答案 0 :(得分:0)
在MediaWiki 1.27+中,应该通过编写PrimaryAuthenticationProvider
来完成登录(在1.27之前,对于非基于密码的登录没有非hacky方法)。请参阅该类中的内联文档,或this patch,其中提供了与OAuth1类似的功能。