SleekXMPP-如何检查用户是否通过身份验证?
SleekXMPP-How to check whether the user is authenticated or not?
正如问题所说,我该怎么做?以下是代码-
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 身份验证成功和失败案例放置事件处理程序。通过 sleekxmpp 事件,它让我相信它可以通过监视 auth_success
和 failed_auth
事件来完成。可能的代码将是:
xmpp.add_event_handler("failed_auth", on_failed_auth)
xmpp.add_event_handler("auth_success", on_auth_success)
正如问题所说,我该怎么做?以下是代码-
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 身份验证成功和失败案例放置事件处理程序。通过 sleekxmpp 事件,它让我相信它可以通过监视 auth_success
和 failed_auth
事件来完成。可能的代码将是:
xmpp.add_event_handler("failed_auth", on_failed_auth)
xmpp.add_event_handler("auth_success", on_auth_success)