成功连接到服务器后,即。成功回调后
- (void) xmppStreamDidConnect:(XMPPStream *)sender
我有时会遇到身份验证失败,即。调用以下回调:
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>
就像我说的,我偶尔会得到这个。我已经追踪过这个问题,到目前为止我已经尝试了几件事。 我已经研究过的事情,到目前为止我可以证实:
XMPPSCRAMSHA1Authentication
)XMPPPlainAuthentication
)[xmppStream disconnect]
)时尝试强制断开连接,然后在xmppStreamDidDisconnect
回调中尝试重新打开流([xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&error]
),那么我得到进入无限循环,因为身份验证失败一致现在,我进一步研究了这一点,当使用SCRAM-SHA-1机制时,看起来它在第二次挑战时失败了。客户端向服务器发送一些(看似有效)但服务器不喜欢它并抛出not-authorized
错误。
有人想到吗?
答案 0 :(得分:0)
您必须检查您的用户名和密码。如果您通过了错误的用户名和密码进行身份验证/登录,则会调用此 didNotAuthenticate 方法