使用f***g php注销ejabbered用户
Posted
技术标签:
【中文标题】使用f***g php注销ejabbered用户【英文标题】:unregister ejabbered user with f***g php 【发布时间】:2017-01-23 15:17:18 【问题描述】:我使用f***g php 示例(https://github.com/f***g/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>
我注意到即使我没有登录我也可以注册新用户,所以我怀疑我的身份验证没有按预期进行删除。如何使用f***g进行sha1认证?
我可以毫无问题地使用 sha1 auth 从 android 应用程序中取消注册。
【问题讨论】:
【参考方案1】:我想通了,要注销用户,您必须以该用户身份登录(而要注册,您必须以管理员身份登录)。
$this->implementation = new Implementation($withAuthentication);
$this->options = new \F***g\Xmpp\Options('tcp://...');
$this->options->setImplementation($this->implementation);
$this->options->setLogger($this->logger)
->setUsername($xmppuser)
->setPassword($xmpppass)
->setTimeout(self::XMPP_TIMEOUT);
$this->client = new \F***g\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 \F***g\Xmpp\Util\XML::quoteMessage(
"<iq id='%s' type='set'><query xmlns='jabber:iq:register'><remove></remove></query></iq>",
\F***g\Xmpp\Util\XML::generateId()
);
【讨论】:
以上是关于使用f***g php注销ejabbered用户的主要内容,如果未能解决你的问题,请参考以下文章
在从 php 会话注销期间取消设置 cookie 有啥意义?