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)
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
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)