3
在我的插件中,我只有用戶名或電子郵件,我必須授權該用戶。我發現下一個問題,但它並沒有爲我工作:如何在沒有密碼的情況下授權MediaWiki 1.19中的用戶?
class ApiPlugin extends ApiBase {
public function execute() {
$params = $this->extractRequestParams();
switch ($params['do']) {
case 'login':
// Registering. Works fine.
$user = User::newFromName('admin');
$user->setEmail([email protected]);
$user->setRealName('admin');
$uid = $user->idForName();
if ($uid === 0) {
$user->addToDatabase();
$user->setPassword(generate_password());
$user->saveSettings();
}
$ssu = new SiteStatsUpdate(0, 0, 0, 0, 1);
$ssu->doUpdate();
if ($user->isLoggedIn()) $user->doLogout();
//Logging in.
$id = User::idFromName('admin');
$user->setID($id);
$user->loadFromId();
$user->setToken();
$user->saveSettings();
wfSetupSession();
$user->setCookies();
break;
}
}
}
此外,另一個問題是越來越密碼哈希直接從數據庫,但它是野蠻...
提前感謝!
_ How does it does not work?另外,您可能想要提供更多的上下文。我假設這個代碼來自[UserLoadFromSession](http://www.mediawiki.org/wiki/Manual:Hooks/UserLoadFromSession)鉤子? –
它是基於API的插件。增加了一些代碼。 >它不起作用? 調用'api.php?action = ApiPlugin&do = login'後,我仍然以匿名身份登錄。 –
嗯,那很奇怪。你有沒有收到新的cookies? –