XMPPFramework - 删除注册用户帐户时出现“未授权”错误

Posted

技术标签:

【中文标题】XMPPFramework - 删除注册用户帐户时出现“未授权”错误【英文标题】:XMPPFramework - "not-authorized" error upon deleting a registered user account 【发布时间】:2014-07-21 10:10:09 【问题描述】:

我想删除当前使用 XMPP 连接的 Openfire 用户。

我使用以下代码删除用户:

- (void)DeleteAccountFromOpenfire

    NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:@"'jabber:iq:register'"];
    [query addChild:[NSXMLElement elementWithName:@"remove"]];
    XMPPIQ *iq = [XMPPIQ iqWithType:@"set" elementID:@"unreg1"];
    [iq addChild:query];
    [[self xmppStream] sendElement:iq];

但我从服务器收到not-authorized 错误。我该如何避免呢?

【问题讨论】:

你从服务器得到什么响应? @legoscia,这是我得到的 iq 删除> @Hemant,这就是您发送的智商。作为服务器的响应,您会返回什么? @legoscia 然后我收到未授权错误.. 对,not-authorized 可能是这里的关键部分。我自己对 Openfire 并不熟悉,但更有知识的人可能会指出如何配置服务器以允许删除帐户。 【参考方案1】:

以下是从openfire帐户中删除注册用户的解决方案

NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:@"jabber:iq:register"];
[query addChild:[NSXMLElement elementWithName:@"remove"]];

NSXMLElement *iq = [NSXMLElement elementWithName:@"iq"];
[iq addAttributeWithName:@"type" stringValue:@"set"];
[iq addAttributeWithName:@"id" stringValue:@"unreg1"];
[iq addChild:query];
[[self xmppStream] sendElement:iq];

【讨论】:

以上是关于XMPPFramework - 删除注册用户帐户时出现“未授权”错误的主要内容,如果未能解决你的问题,请参考以下文章

xmpp 从服务器中删除帐户

如何检查用户 JID 是不是已在 XMPPFrameWork 中使用

如何使用 XMPPFramework 从 ejabberd 中删除两个用户之间的特定消息?

如何删除本地主机上上传的文件以及 PHP 中的用户帐户

XMPPFramework - 无法连接到 Openfire 服务器

如何使用 XMPPFramework 设置匿名登录 - iOS Objective-C