コード例 #1
0
ファイル: xmpp.py プロジェクト: duruo850/HomeInternet
 def login(self, jid, jid_pass):
     """
     适配器登陆处理
     :param jid: 用户jid
     :param jid_pass:用户jid 密码
     :return:None
     """
     try:
         new_xmpp_adapter = XmppAdapter()
         new_xmpp_adapter.init(JID(jid), jid_pass)
         new_xmpp_adapter.start()
     except SASLAuthenticationFailed, _:
         s2c_message.xmpp_login_res(jid, error_code.ERROR_JID_OR_JID_PASS_ERROR, "")
         log_params = "jid:%s jid_pass:%s" % (jid, jid_pass)
         logger.info("XmppAdapterMgr::login ERROR_JID_OR_JID_PASS_ERROR, %s" % log_params)
コード例 #2
0
ファイル: xmpp.py プロジェクト: duruo850/HomeInternet
    def on_login(self, relogin=False):
        """
        xmpp登陆
        :param relogin: 是否重新登陆
        :return:
        """
        access_token = XmppAdapterMgr().get_access_token(self.jid_bare_str)
        assert access_token
        mxid = MxidMgr().gen_mxid(access_token, self.jid_bare_str)
        XmppAdapterMgr().add_mxid(self.jid_bare_str, mxid)

        s2c_message.xmpp_login_res(self.jid_bare_str, error_code.ERROR_SUCCESS, mxid)

        log_params = "JID:%s JID_PASS:%s" % (self.JID, self.password)
        logger.info("XmppAdapter::on_login ERROR_SUCCESS, %s" % log_params)

        if relogin:
            self.pub_roster()

        self.conn_stat = CT_CONNECTED
コード例 #3
0
ファイル: c2s_message.py プロジェクト: duruo850/HomeInternet
def xmpp_login_req(mqttc, userdata, topic, payload):
    """
    xmpp 登陆请求
    :param mqttc:请求客户端
    :param userdata:
    :param topic:主题
    :param payload:内容
    :return:
    """
    jid = topic.split("/")[-1]
    access_token = payload.get('access_token', None)
    jid_pass = payload.get('jid_pass', None)
    log_params = "jid:%s, jid_pass:%s, access_token:%s" % (jid, jid_pass, access_token)

    # check params
    if not access_token\
            or not jid\
            or not JidMgr().is_jid(jid)\
            or not jid_pass:
        s2c_message.xmpp_login_res(jid, error_code.ERROR_PARAMS_ERROR, "")
        logger.info("xmpp_login_req ERROR_WRONG_PARAMS, %s" % log_params)
        return

    if not verify_access_token(ServiceMgrCacher().get_connection(US_REGISTER), access_token):
        s2c_message.xmpp_login_res(jid, error_code.ERROR_ACCESS_TOKEN_ERROR, "")
        logger.info("xmpp_login_req ERROR_ACCESS_TOKEN_ERROR, %s" % log_params)
        return

    # 不管重登与否,access_token都有可能发生变化
    XmppAdapterMgr().add_access_token(jid, access_token)

    xmpp_adapter = XmppAdapterMgr().get_xmpp_adapter(jid)
    if xmpp_adapter:
        xmpp_adapter.on_login(relogin=True)
        return

    XmppAdapterMgr().login(jid, jid_pass)