1. 程式人生 > >XMPP(伺服器Openfire)框架下,修改使用者密碼

XMPP(伺服器Openfire)框架下,修改使用者密碼

1.先按照協議0077中修改密碼的XML修改自己的

{

/*

         <iq type='set' to='shakespeare.lit' id='change1'>

         <query xmlns='jabber:iq:register'>

         <username>bill</username>

         <password>newpass</password>

         </query>

         </iq>

         */

NSXMLElement *iq = [

NSXMLElementelementWithName:@"iq"];

        [iq addAttributeWithName:@"type"stringValue:@"set"];

        [iq addAttributeWithName:@"to"stringValue:@"ubuntu-dev"];

         [iq addAttributeWithName:@"id"stringValue:CHANG_PWD_id];  //#define CHANG_PWD_id @"change1"確定id唯一就行

        NSXMLElement *queryElement = [NSXMLElement

elementWithName:@"query"xmlns:@"jabber:iq:register"];

        [iq addChild:queryElement];

NSString *userNameStr = [[NSUserDefaultsstandardUserDefaults]objectForKey:@"userName"];

        NSXMLElement *username = [NSXMLElementelementWithName:@"username"];

        [username setStringValue:userNameStr];

        NSXMLElement *password = [NSXMLElementelementWithName:@"password"];

NSLog(@"self.tfNewPWDSure.text_______:%@",self.tfNewPWDSure.text);

        [password setStringValue:self.tfNewPWDSure.text];

        [queryElement addChild:username];

        [queryElement addChild:password];

//        NSLog(@"iq__%@",iq.description);//列印下XML流檢查是否拼接正確

        [[XMPPServiceshareInstance].xmppStreamsendElement:iq];//傳送{XMPPStream被我封裝進單例類XMPPService裡}

        [[XMPPServiceshareInstance].xmppStreamaddDelegate:selfdelegateQueue:dispatch_get_main_queue()];//設定代理

}

#pragma make - xmppStream

- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq{

        NSLog(@"__%@",iq.description);

    /*

     <iq xmlns="jabber:client" type="result" id="change1" from="ubuntu-dev" to="[email protected]/870efdcd"></iq>

     */

    NSString *iqTypePWD = [[iq attributeForName:@"type"]stringValue];

NSString *iqIDPWD = [[iqattributeForName:@"id"]stringValue];

NSLog(@"iqTypePWD:%@___iqTypePWD:%@",iqTypePWD,iqIDPWD);

    if ([iqTypePWD isEqualToString:@"result"]&&[iqIDPWDisEqualToString:CHANG_PWD_id]) {   //進行判斷只有type="result" id="change1"時,密碼修改成功 

NSLog(@"OpenFire密碼修改成功!");

    }

returnYES;

}

個人總結:XMPP框架不是萬能的,但XML流是萬能的,當XMPP無法滿足你的需求時,用XML可以輕鬆搞定!

相關推薦

XMPP(伺服器Openfire)框架,修改使用者密碼

1.先按照協議0077中修改密碼的XML修改自己的 { /*          <iq type='set' to='shakespeare.lit' id='change1'>          <query xmlns='jabber:iq:regis

Linux修改Mysql密碼的三種方式,測試過效果,能正常使用

密碼 root mysq cat 服務 方法 方式 運行 mysql密碼 個人分類: mysql修改密碼linux修改mysql密碼軟件編程 有時我們會忘記Mysql的密碼,或者想改一個密碼,以下將對這兩種情況修改密碼的三種解決方法做個總結 本文都以用戶為 root 為例;

Windows修改Redis密碼

1、在Redis安裝資料夾下面,例如‪D:\Redis-x64-3.2.100\,開啟redis.windows.conf檔案, 找到# requirepass foobared行, 去掉#號,改為requirepass 123456, 即將密碼改為123456。 2、在Redis安

Windows修改MySQL密碼

1、在以下資料夾下面C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql以管理員身份開啟CMD命令視窗; 2、輸入mysql -u root -p; 3、輸入set password for [email protected

windows 修改mysql密碼

Mysql 版本: 5.1,暫時還沒有測試其他的版本是否有用 1、 首先檢查mysql服務是否啟動,若已啟動則先將其停止服務,可在開始選單的執行,使用命令: net stop mysql  開啟第一個cmd

Qt MVD框架修改檢視中資料項/標題的背景顏色說明(Qt 5.10.1)

        在不利用QSS的情況下,如果想修改MVD中檢視的某個資料項的背景顏色,則可以: QVariant YourModel::data(const QModelIndex &index, int role) con

Linux修改MySQL密碼(只需5步)

針對忘記root密碼方式: 1、編輯/etc/my.cnf檔案 vi /etc/my.cnf 2、在[mysqld]下面新增一條命令:skip-grant-tables 3、輸入:wq!(儲存修改並退出) 4、開始修改root密碼 4.1 進入MySql控制

Linux 修改資料庫密碼

修改的使用者都以root為列。一、擁有原來的myql的root的密碼;方法一:在mysql系統外,使用mysqladmin# mysqladmin -u root -p password "test123"Enter password: 【輸入原來的密碼】方法二:通過登入mysql系統,# mysql -u

Linux系統在未登入的情況修改root密碼方法(linux系統忘記root密碼,進不去系統怎麼辦)

linux系統忘記root密碼,進不去系統怎麼辦 有時候我們會遇到這樣的情況,很久沒用的系統, 想要登入時卻發現忘記了root密碼,那該怎麼辦?一般來說我們可以進入單使用者或者通過編輯grub選單來修改root密碼。 對於一些版本的OS(如redhat)來說,編輯grub,

CentOS修改MySQL密碼

1.修改MySQL的登入設定: vim /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 2.重新啟動mysql service mysql re

Android基於XMPP Smack Openfire學習開發IM(一)實現使用者註冊、登入、修改密碼和登出等

以前學習過用Scoket 建立聊天,簡單的建立聊天是沒問題的,但如果要實現多人複雜的聊天,後臺伺服器程式碼就比較複雜,對於我這新手來講就比較難了。後來在網上看到用openfire做伺服器,利用強大的Smack API庫來實現IM聊天就簡單多了。  網上也有很多關於這方面的資

MAC修改XAMPP裡MySQL伺服器密碼

一:MySQL伺服器連結NaviCat時,需要輸入MySQL的密碼,這個時候可能就會遺忘掉,修改的話可以在終端進行指令修改 1:啟動Apache和Mysql服務 2:在終端輸入 sudo /App

Openfire 伺服器搭建問題記錄(重新配置以及修改管理員密碼)

1.配置Openfire完成後,修改Openfire安裝目錄下的Openfire\conf\openfire.xml檔案中的setup標籤修改為false,然後重啟openfire(stop –>start–>Lanunch Admin),可以重新配

mac修改mysql的密碼

行修改 登錄管理 登錄mysql grant mysql base ref 管理員權限 mac 第一種 mysql版本:5.7.17 1.首先我們要關閉mysql服務 sudo /usr/local/mysql/support-files/mysql.server stop

修改密碼】Linux修改Mysql的用戶(root)的密碼

exit 用戶 mysql use 操作 -- 原來 都沒有 註意 修改的用戶都以root為列。一、擁有原來的myql的root的密碼;方法一:在mysql系統外,使用mysqladmin# mysqladmin -u root -p password "test123"E

sqlserver修改sa密碼(在windows登陸沒有權限的情況

can use blog alter stop admin 成功 使用命令 with 對於windows用戶沒有權限執行alter login sa enable的情況下,采用如下方法可以成功修改sa密碼登陸。 1. 用Run as a administrato

centos修改mysql的root密碼

acc leg oca art 密碼 sql安裝 令行 sta sudo mysql安裝後,mysql命令行登錄mysql提示如下錯誤: Access denied for user ‘root‘@‘localhost‘ (using password:YES) 可能的原因

Centos7.3mysql5.7.18安裝並修改初始密碼的方法

ice version 分享 form for 榮耀 serve 密碼 doc 1、官方安裝文檔 http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 2、下載 Mysql yum包 http://dev.mysql

Linux修改mysql的root密碼

下面是具體步驟 一、知道原來的myql資料庫的root密碼; 1、 在終端命令列輸入  mysqladmin -u root -p password "新密碼" 回車 ,Enter password: 【輸入原來的舊密碼】 2、 登入mysql系統

linuxrpm方式安裝mysql--修改root密碼--設置mysql大小寫敏感

mce password rom sta linux服務器 目錄 查詢 lec 連接 一,軟件準備   MySQL-client-5.6.26-1.linux_glibc2.5.x86_64.rpm+MySQL-server-5.6.26-1.linux_glibc2.5.