我正在使用xmpp框架將gtalk集成到我的應用程序中。我已成功使用OAuth 2.0對用戶進行身份驗證。現在我想使用訪問令牌和用戶電子郵件來驗證xmpp流。我知道認證調用使用此方法authenticateWithPassword發送xmppStreamDidConnect方法。這需要一個密碼,我想使用谷歌訪問令牌來完成它。任何幫助?使用谷歌訪問令牌的Xmpp gtalk身份驗證
回答
是的,你可以做到這一點,請按照下列步驟:
- 註冊您的谷歌開發者控制檯上的應用程序。
生成訪問令牌以下列範圍: https://www.googleapis.com/auth/googletalk
開始驗證如下:
- (BOOL)開始:(NSError **)errPtr { XMPPLogTrace();
//從RFC 4616 - PLAIN SASL機制: // [authzid] UTF8NUL authcid UTF8NUL passwd的 // // authzid:授權身份 // authcid:認證標識(用戶名) // passwd的:密碼authcid
的NSString *的accessToken = @ 「ACCESS-TOKEN串,從谷歌」; // TODO:您的分配產生的訪問令牌 的NSLog(@ 「流支持:%@」,xmppStream。 supportedAuthenticationMechanisms); NSString * payload = [NSString stringWithFormat:@「\ 0%@ \ 0%@」,xmppStream.hostName,accessToken]; NSLog(@「payload =%@」,payload); NSString * base64 = [[payload dataUsingEncoding:NSUTF8StringEncoding] xmpp_base64Encoded]; NSXMLElement * auth = [NSXMLElement 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:@「https://www.google.com/talk/protocol/auth」]; [auth setStringValue:base64];
[xmppStream sendAuthElement:auth];
return YES;
}
一切都應該按預期工作,請評論。
- 1. Google身份驗證的訪問令牌
- 2. 驗證訪問令牌 - Asp.Net身份
- 3. Assembla身份驗證和訪問令牌
- 4. 谷歌身份驗證令牌的使用情況
- 5. 使用令牌的谷歌身份驗證
- 6. 谷歌語音到文本的身份驗證訪問令牌到期問題
- 7. 使用訪問令牌進行Twitter的身份驗證呼叫
- 8. 使用VersionOne訪問令牌的Java SDK身份驗證
- 9. 使用令牌的Firebase身份驗證
- 10. 如何驗證Google身份驗證API訪問令牌?
- 11. 使用Facebook訪問令牌服務器端身份驗證
- 12. 使用OAuth身份驗證將訪問令牌傳遞給Jira
- 13. SignalR - 使用訪問令牌進行身份驗證
- 14. CherryPy身份驗證令牌
- 15. Facebook身份驗證令牌
- 16. 身份驗證令牌
- 17. 與身份驗證令牌
- 18. 如何獲取谷歌身份驗證令牌
- 19. 身份驗證firebase谷歌
- 20. 谷歌身份驗證C#
- 21. Microsoft Graph身份驗證令牌問題
- 22. Paw身份驗證令牌問題
- 23. 谷歌身份驗證使用Xamarin.Auth
- 24. 使用Twitter上的Twitter訪問令牌進行身份驗證(使用iOS Twitter反向身份驗證)
- 25. Node.JS驗證Google身份驗證令牌
- 26. ember.js - 獲得訪問令牌,使用簡單的身份驗證/牌坊
- 27. 使用用戶名和密碼獲取谷歌身份驗證令牌
- 28. Owin身份令牌身份驗證令牌端點響應404
- 29. Servicestack身份驗證 - 使用已發佈的訪問令牌進行身份驗證
- 30. Facebook的身份驗證API回調訪問令牌