xmpp — отменить регистрацию ejabbered пользователя с помощью fabiang Stack Overflow

я использую пример fabiang php (https://github.com/fabiang/xmpp/blob/master/example.php) успешно зарегистрировать нового пользователя. но когда я пытаюсь удалить команду, она терпит неудачу с

<error code='405' type='cancel'><not-allowed xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>The query is only allowed from local users</text></error>

Я заметил, что могу зарегистрировать нового пользователя, даже если я не вошел в систему, поэтому я подозреваю, что моя аутентификация не работает должным образом для удаления. Как использовать fabiang для аутентификации с помощью sha1?

Я могу без проблем отменить регистрацию в приложении для Android с помощью sha1 auth.

0

Решение

Я понял это, чтобы отменить регистрацию пользователя, вы должны войти в систему как этот пользователь (в то время как для регистрации вы должны войти в систему как администратор).

$this->implementation = new Implementation($withAuthentication);
$this->options = new \Fabiang\Xmpp\Options('tcp://...');
$this->options->setImplementation($this->implementation);
$this->options->setLogger($this->logger)
->setUsername($xmppuser)
->setPassword($xmpppass)
->setTimeout(self::XMPP_TIMEOUT);

$this->client = new \Fabiang\Xmpp\Client($this->options);

$listener = new UnRegistrationListener();
$unRegistrationObj = new UnRegistration();

$this->client->connect();
$this->implementation->registerListener($listener);
$this->client->send($unRegistrationObj);
$this->client->disconnect();

и незарегистрированное сообщение от ProtocolImplementationInterface выглядит так:

public function toString()
{
return \Fabiang\Xmpp\Util\XML::quoteMessage(
"<iq id='%s' type='set'><query xmlns='jabber:iq:register'><remove></remove></query></iq>",
\Fabiang\Xmpp\Util\XML::generateId()
);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector