我使用OAuth2身份验证来使用IMAP访问用户的Gmail(和Hotmail)邮件。 为此,我实施了以下步骤:
这很好用。但我不喜欢用户必须两次输入电子邮件地址 - 分1步和3步。实际上,用户可以在步骤1和3中输入不同的电子邮件地址,因此我收到"无效的凭据"在第6步。
所以问题是:是否有可能获得正在访问其帐户的用户的电子邮件地址?然后我可以跳过第1步。
答案 0 :(得分:0)
使用Google Identity Plateform,您可以通过添加" openid"来验证用户身份。和"电子邮件"您的授权请求的范围(请参阅this page)。 当您收到访问令牌时,您还会收到一个包含用户电子邮件的ID令牌。
使用这些范围,您可以摆脱步骤1.并在步骤4"获取访问令牌, ID令牌和刷新令牌时检索电子邮件。" 验证ID令牌的详细信息为on this page
答案 1 :(得分:0)
正如@Spomky所写,对于谷歌我们可以使用额外的范围"电子邮件"获取id令牌并从中提取电子邮件地址。
对于Hotmail(Live.com),我们可以在第4步之后提出额外请求: 获取https://apis.live.net/v5.0/me?access_token=ACCESS_TOKEN