Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SleekXMPP如何检查用户是否经过身份验证?_Python_Xmpp_Sleekxmpp - Fatal编程技术网

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

Python SleekXMPP如何检查用户是否经过身份验证?,python,xmpp,sleekxmpp,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_handle

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

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)

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

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

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

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

谢谢@Manishg提出这个问题。我不知道这件事。我现在可以结合您的答案来解决我的用例。顺便问一下,SleekXMPP中的所有事件是什么?有相同的维基吗?我想知道所有的事件。ThansAlso,如果你能提供你在我没有找到任何描述此信息的维基中的专业知识,这将是很有帮助的。这是我通过他们编写的SASL代码观察到的。我认为XMPP基础知识在这里会有所帮助,但我可能错了。我将检查另一个问题。