SleekXMPP - 如何检查用户是否经过身份验证?

时间:2017-02-24 13:53:44

标签: python xmpp sleekxmpp

正如问题所说,我该怎么做?以下是代码 -

import logging
from sleekxmpp import ClientXMPP

logging.basicConfig(level=logging.DEBUG, format='%(levelname)-8s %(message)s')


def on_session(event):
    xmpp.get_roster()

xmpp = ClientXMPP(jid, password)
xmpp.add_event_handler('session_start', on_session)
if xmpp.connect():
    print xmpp.authenticated  # Always prints `False`
    xmpp.process(block=True)

我可以看到在日志中打印,但我还想在代码中检查它。我该怎么办?

1 个答案:

答案 0 :(得分:2)

在XMPP中,身份验证由SASL处理,通常在客户端连接后启动。

在您的情况下,仅仅连接成功并不意味着身份验证已经完成。您需要为SASL身份验证成功和失败案例放置事件处理程序。通过sleekxmpp事件,它让我相信可以通过监控auth_successfailed_auth事件来完成。可能的代码是:

xmpp.add_event_handler("failed_auth", on_failed_auth)
xmpp.add_event_handler("auth_success", on_auth_success)