2016-06-07 39 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

相關問題