身份验证失败错误 - XMPPFramework - 未授权

时间:2014-10-31 22:09:06

标签: ios objective-c xmpp xmppframework

成功连接到服务器后,即。成功回调后

- (void) xmppStreamDidConnect:(XMPPStream *)sender

我有时会遇到身份验证失败,即。调用以下回调:

  • (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(NSXMLElement *)error

NSXMLElement看起来像这样:

<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/><text>The response provided by the client doesn't match the one we calculated.</text></failure>

就像我说的,我偶尔会得到这个。我已经追踪过这个问题,到目前为止我已经尝试了几件事。 我已经研究过的事情,到目前为止我可以证实:

  • 用户名和密码是100%正确
  • 我使用SCRAM-SHA-1身份验证机制(XMPPSCRAMSHA1Authentication
  • 我的服务器也支持PLAIN机制,但也失败了(XMPPPlainAuthentication
  • 如果我在收到此错误([xmppStream disconnect])时尝试强制断开连接,然后在xmppStreamDidDisconnect回调中尝试重新打开流([xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&error]),那么我得到进入无限循环,因为身份验证失败一致

现在,我进一步研究了这一点,当使用SCRAM-SHA-1机制时,看起来它在第二次挑战时失败了。客户端向服务器发送一些(看似有效)但服务器不喜欢它并抛出not-authorized错误。

有人想到吗?

1 个答案:

答案 0 :(得分:0)

您必须检查您的用户名和密码。如果您通过了错误的用户名和密码进行身份验证/登录,则会调用此 didNotAuthenticate 方法