ios中的XMPP更改密码不起作用
Posted
技术标签:
【中文标题】ios中的XMPP更改密码不起作用【英文标题】:XMPP change password in ios not working 【发布时间】:2016-01-02 07:07:21 【问题描述】:我正在开发一个基于聊天的应用程序并在我的 openfire 服务器上使用 xmpp,我想在 ios 中添加更改密码功能。我已经搜索了很多 fopr 更改密码功能 (xmpp) 并添加了一种更改密码的方法xmpp,但是没有成功。我不知道也没有任何想法,请帮助我,我的密码更改代码如下:
- (void)goOnline
if (appDelegate.signInORnot == 1)
self.connectionStatus = OTRProtocolConnectionStatusConnected;
NSLog(@"Account totaltrip..%@",account.totalTrip);
[[NSNotificationCenter defaultCenter] postNotificationName:kOTRProtocolLoginSuccess object:self userInfo:[NSDictionary dictionaryWithObject:account.totalTrip forKey:TOTAL_TRIP_KEY]];
XMPPPresence *presence = [XMPPPresence presence]; // type="available" is implicit
//Develop By Payal Done
[[self xmppStream] sendElement:presence];
[self changePassword];
-(BOOL)changePassword
NSUserDefaults *standardUserDefaults = USERDEFAULT;
NSString *passNew = nil;
if (standardUserDefaults)
passNew = [standardUserDefaults objectForKey:@"Newpwd"];
NSUserDefaults *standardUserDefaults1 = USERDEFAULT;
NSString *emailStr = nil;
if (standardUserDefaults1)
emailStr = [standardUserDefaults1 objectForKey:@"mailId"];
NSUserDefaults *standardUserDefaults2 = USERDEFAULT;
NSString *ID = nil;
if (standardUserDefaults2)
ID = [standardUserDefaults2 objectForKey:@"intglCode"];
ID = [ID stringByAppendingString:@"@openfire.netcluesdemo.com"];
NSLog(@"===passed JID===%@",ID);
//NSString *myPassword = passNew;
if (![_xmppStream isDisconnected])
return YES;
// NSString *myJID = [USERDEFAULT stringForKey: USERNAME];
// NSString *myPassword = [USERDEFAULT stringForKey: PASSWORD];
//CHANGE JIGAR
NSString *myJID=ID;
NSString *myPassword=passNew;
if (myJID == nil || myPassword == nil)
return NO;
[_xmppStream setMyJID:[XMPPJID jidWithString:myJID]];
account.password = myPassword;
// _xmppRegistration = [[XMPPRegistration alloc] init];
// if([OTRXMPPManager changePassword:myPassword])
//
// return YES;
//
return NO;
【问题讨论】:
您是否使用基于 Web 的管理面板。如果是,则:服务器的大多数管理都是通过 Web 界面完成的,默认情况下,该界面在端口 9090 (HTTP) 和 9091 (HTTPS) 上运行。管理员可以从任何地方连接并编辑服务器和配置设置。 我真的没有得到你亲爱的,但我真的需要你的帮助。 @KumarUtsav- 我仍在努力解决这个问题。你能帮帮我吗? 【参考方案1】:使用以下changePassword:
函数从openfire帐户更改用户密码:
-(void)changePassword:(NSString *)newPassword
NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:@"jabber:iq:register"];
NSXMLElement *username = [NSXMLElement elementWithName:@"username"
stringValue:[self xmppStream].myJID.user];
NSXMLElement *password = [NSXMLElement elementWithName:@"password"
stringValue:newPassword];
[query addChild:username];
[query addChild:password];
NSXMLElement *iq = [NSXMLElement elementWithName:@"iq"];
[iq addAttributeWithName:@"type" stringValue:@"set"];
[iq addAttributeWithName:@"id" stringValue:[[self xmppStream] generateUUID]];
[iq addChild:query];
[[self xmppStream] sendElement:iq];
在此函数中,将新密码传入参数中。
【讨论】:
以上是关于ios中的XMPP更改密码不起作用的主要内容,如果未能解决你的问题,请参考以下文章