XMPP谷歌对话X-的oauth2登录需要用户名(XMPP Google Talk X-OAUTH2

2019-09-26 09:35发布

我执行的是使用比较新的X-的oauth2机制谷歌通话的XMPP客户端。 我不得不说我不应该需要存储任何用户名或密码进行身份验证的服务理念。 然而, 谷歌的文档对于X-的oauth2认证状态,这是最初<auth>的要求,使:

<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl"
    mechanism="X-OAUTH2"
    auth:service="oauth2"
    xmlns:auth="http://www.google.com/talk/protocol/auth">
  base64("\0" + user_name + "\0" + oauth_token)
</auth>

请注意,它需要“USER_NAME”要与令牌一起发送。 有什么事,我在这里失踪? 还是我真的不得不为用户名我的应用程序的提示? (请注意,用户将已经通过的OAuth2登录到接收访问令牌)

我不知道使用OAuth要求客户端提供用户名的任何其他服务的。 举例来说,同样的应用程序可以连接到通过XMPP和Facebook的OAuth2用户聊天,而无需在XMPP要提供的用户名。

Answer 1:

你并不需要提示您的应用程序的用户名。 只要指定“范围”参数设置为“https://www.googleapis.com/auth/userinfo.email”。 请参阅此 。 这会给你的用户电子邮件ID与令牌一起响应。

此链接有关于谷歌帐户身份验证和授权详细的解释。 用户名和电子邮件ID中,你可以在你的应用程序中使用getUserInfo()函数返回。



文章来源: XMPP Google Talk X-OAUTH2 login requires username