2014-10-31 43 views
6

成功連接到服務器後,即。一個成功的回調身份驗證失敗錯誤 - XMPPFramework - 未授權

- (void) xmppStreamDidConnect:(XMPPStream *)sender

後,我有時會得到一個身份驗證失敗,即。下面的回調被稱爲:

  • (無效)xmppStream:(XMPPStream *)發件人didNotAuthenticate:(NSXMLElement *)錯誤

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])然後我進入一個無限循環b因爲認證失敗一致

現在,我更深入地研究了這一點,當使用SCRAM-SHA-1機制時,它看起來像在第二個挑戰時失敗。客戶端向服務器發送了一些(似乎有效的),但服務器不喜歡它並拋出not-authorized錯誤。

想到任何人?

+0

你找到任何解決方案我也面臨同樣的問題。 – Bittoo 2016-04-12 12:43:47

回答

0

你必須檢查你的用戶名和密碼。如果你通過錯誤的用戶名和密碼進行身份驗證/登錄,那麼這didNotAuthenticate方法將被稱爲