Php 如何在没有密码的情况下授权MediaWiki 1.19中的用户?
在我的插件中,我只有用户名或电子邮件,我必须授权该用户。我找到了下一个问题,但它对我不起作用:Php 如何在没有密码的情况下授权MediaWiki 1.19中的用户?,php,authorization,mediawiki,session-cookies,Php,Authorization,Mediawiki,Session Cookies,在我的插件中,我只有用户名或电子邮件,我必须授权该用户。我找到了下一个问题,但它对我不起作用: class ApiPlugin extends ApiBase { public function execute() { $params = $this->extractRequestParams(); switch ( $params['do'] ) { case 'login':
class ApiPlugin extends ApiBase {
public function execute() {
$params = $this->extractRequestParams();
switch ( $params['do'] ) {
case 'login':
// Registering. Works fine.
$user = User::newFromName( 'admin' );
$user->setEmail( admin@email.com );
$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;
}
}
}
另外,另一个问题是直接从DB获取密码哈希,但这是野蛮的…提前谢谢 几天后,我试图将代码和。。。利润
class ApiPlugin extends ApiBase {
public function execute() {
$params = $this->extractRequestParams();
switch ( $params['do'] ) {
case 'register':
// Registering. Works fine.
$user = User::newFromName( 'admin' );
$user->setEmail( admin@email.com );
$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();
case 'authorise':
if ($user->isLoggedIn()) $user->doLogout();
wfSetupSession();
//Logging in.
$id = User::idFromName('admin');
$user->setID($id);
$user->loadFromId();
$user->setToken();
$user->saveSettings();
$user->setCookies();
break;
}
}
}
它怎么不起作用?此外,您可能希望提供更多的上下文。我假设这段代码来自一个钩子?它是基于API的插件。添加了一些代码。>它怎么不起作用?调用
api.php?action=ApiPlugin&do=login
后,我仍然以匿名身份登录。嗯,这很奇怪。你有新的饼干回来吗?没有,只是检查了一下,没有新的。能否至少为日志组cookie
启用,并查看日志中是否有以setcookie:
开头的行?