XMPP 常见错误:<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>

一般登陆/注册 出错,会在认证失败这里打印出error信息
- (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(DDXMLElement *)error 
<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure> 
其实,XMPP认证的问题,一般都是与JID有关的,因此解决这类问题,首选的入口就是分析一下XMPPStream的JID,客户端在与服务器连接后,Socket就绑定了这个端口,用来处理与服务器的往返数据,认证就是其中之一.而且,往往我们在与服务器来连接的时候,为了简便,经常使用localhost或者127.0.0.1来当做域名的部分,这时候要尤其注意,因为使用Spark或者其他客户端程序登录的时候,使用这样的域名登录服务器是没有问题的,但在代码中处理就要特别小心,一定要在服务器的后段,确认域名统一:
 
在spark中登陆是使用127.0.0.1登陆时可以登陆,但是在代码中设置,openfire的域名地址时要填写正确,不能使用127.0.0.1
否则就会出现上述错误.而openfire的服务器IP地址也就是我们本地服务器的IP地址,(电脑的IP地址)
在浏览器中输入 localhost:9090   可以查看本地服务器的域名
//openfire服务器IP地址
#define  kHostName      @"172.16.12.178"   // 本机的ip地址
//openfire服务器端口默认5222
#define  kHostPort       5222
//openfire域名
#define kDomin @"hnxyzhw.local"
//resource
#define kResource @"iOS"
原文地址:https://www.cnblogs.com/mafeng/p/5782155.html