【问题标题】:iOS XMPP Framework, how to handle wrong credential?iOS XMPP 框架,如何处理错误的凭据?
【发布时间】:2014-05-28 21:35:27
【问题描述】:

我使用的所有代码都来自https://github.com/robbiehanson/XMPPFramework。在示例代码中。

在我的 iOS7 消息应用程序中,我在用户输入登录凭据并单击“登录”按钮后调用 XMPP 框架内的“连接”功能。如果他们第一次输入正确的凭据,连接功能可以正常工作,但如果用户输入了错误的凭据,则无法正常工作。因为 connect 中的第一行将简单地返回 TRUE:

 if (![_xmppStream isDisconnected]) {
        return YES;
    }

这意味着在登录按钮上的任何进一步按下都不会执行任何操作。

我应该手动调用 authenticateWithPassword 吗?假设客户端和服务器之间的连接已经建立,这是正确的做法吗?

谢谢。

【问题讨论】:

    标签: ios xmppframework


    【解决方案1】:

    您需要使用委托中的方法来处理身份验证。首先你需要连接到服务器,如果它还没有连接:

    [_xmppStream connectWithTimeout:10 error:&error];
    

    一旦流连接到服务器,将调用委托方法:

    - (void)xmppStreamDidConnect:(XMPPStream *)sender;
    

    在该方法中,您可以调用authenticateWithPassword。如果流之前已连接(如果您发布的内容将是 else 的一部分),您可以致电 authenticateWithPassword

    如果身份验证失败,则调用以下委托方法:

    - (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(NSXMLElement *)error;
    

    您可以在此处决定向用户显示消息并重新开始。如果认证成功,则调用以下方法:

    - (void)xmppStreamDidAuthenticate:(XMPPStream *)sender;
    

    【讨论】:

      猜你喜欢
      • 2020-03-10
      • 1970-01-01
      • 2014-09-12
      • 2018-09-19
      • 2019-12-02
      • 2014-09-21
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      相关资源
      最近更新 更多