2016-06-07 111 views
0

我使用OAuth2身份验证来使用IMAP访问用户的邮件到Gmail(和Hotmail)。 为此,我实施了以下步骤:是否可以使用OAuth2获取正在访问其帐户的用户的电子邮件地址

  1. 提示用户的电子邮件地址。
  2. 生成授权URL并在嵌入式浏览器中打开它。
  3. Gmail要求提供用户的电子邮件地址和密码以及我的应用程序所需的权限。
  4. 获取访问令牌和刷新令牌。
  5. 使用在步骤1中获得的电子邮件地址来形成不记名令牌,并在步骤4中获得访问令牌。
  6. 然后,我使用AUTHENTICATE XOAUTH2%bearer_token%来访问用户的邮件。

这工作正常。但我不喜欢用户必须输入两次电子邮件地址 - 第1步和第3步。事实上,用户可以在步骤1和3中输入不同的电子邮件地址,因此我在步骤6中收到“无效的凭据”。

所以问题是:是否可以获取正在访问帐户的用户的电子邮件地址?然后,我可以跳过第1步。

回答

0

使用Google Identity Plateform,您可以通过将“openid”和“email”作用域添加到授权请求(请参阅this page)来验证用户身份。 当您将收到您的访问令牌时,您还将收到一个包含该用户电子邮件的ID令牌。

使用这些范围,您可以摆脱第1步,并在第4步“获取访问令牌,ID令牌和刷新令牌”中检索电子邮件。 验证ID令牌的详细信息是on this page

+0

比你高,@Spomky。只需要注意一点:“openid”范围不是必需的,“email”就足够了。 – Aleksey

相关问题