- iphone/
- Iphone 使用google访问令牌的Xmpp gtalk身份验证
Iphone 使用google访问令牌的Xmpp gtalk身份验证
Iphone 使用google访问令牌的Xmpp gtalk身份验证,iphone,ios,xmpp,google-talk,Iphone,Ios,Xmpp,Google Talk,我正在使用xmpp框架将gtalk集成到我的应用程序中。我已使用OAuth 2.0成功验证了用户身份。现在我想使用访问令牌和用户电子邮件来验证xmpp流。我知道使用此方法authenticateWithPassword向xmppStreamDidConnect方法发送身份验证调用。这需要一个密码,我想用谷歌访问令牌完成。有什么帮助吗?是的,您可以这样做,请按照以下步骤操作:
在谷歌开发者控制台上注册你的应用
生成具有以下作用域的访问令牌:
按以下步骤启动身份验证:
(BOOL)开始:(n错误
我正在使用xmpp框架将gtalk集成到我的应用程序中。我已使用OAuth 2.0成功验证了用户身份。现在我想使用访问令牌和用户电子邮件来验证xmpp流。我知道使用此方法authenticateWithPassword向xmppStreamDidConnect方法发送身份验证调用。这需要一个密码,我想用谷歌访问令牌完成。有什么帮助吗?是的,您可以这样做,请按照以下步骤操作:
在谷歌开发者控制台上注册你的应用
生成具有以下作用域的访问令牌:
按以下步骤启动身份验证:
- (BOOL)开始:(n错误**)错误
{
XMPPLogTrace()
//来自RFC 4616-普通SASL机构:
//[authzid]UTF8NUL authcid UTF8NUL passwd
//
//authzid:授权标识
//authcid:身份验证标识(用户名)
//passwd:authcid的密码
NSString*accessToken=@“ACCESS-TOKEN-STRING-FROM Google”;//TODO:分配生成的访问令牌
NSLog(@“流支持:%@”,xmppStream.supportedAuthenticationMechanisms);
NSString*有效负载=[NSString stringWithFormat:@“\0%@\0%@”,xmppStream.hostName,accessToken];
NSLog(@“有效负载=%@”,有效负载);
NSString*base64=[[payload dataUsingEncoding:NSUTF8StringEncoding]xmpp_base64Encoded];
nsxmlement*auth=[nsxmlement elementWithName:@“auth”xmlns:@“urn:ietf:params:xml:ns:xmpp sasl”];
[auth addAttributeWithName:@“mechanism”stringValue:@“X-OAUTH2”];
[auth addAttributeWithName:@“auth:service”stringValue:@“oauth2”];
[auth addAttributeWithName:@“xmlns:auth”stringValue:@”“;
[auth setStringValue:base64]
[xmppStream sendAuthElement:auth];
return YES;
}
一切都应按预期进行,请评论