2012-11-03 18 views
1

我想將我的應用程序從Google帳戶登錄遷移到聯合登錄。我的應用需要用戶的電子郵件地址才能正常工作。GAE/P:聯合登錄是否始終包含用戶的電子郵件地址?

如果用戶使用的主要身份提供者(谷歌,Facebook,雅虎等),是有可能,用戶可以登錄,但不能讓我的應用程序來訪問他或她的電子郵件地址是什麼?

我會要求用戶提供一個電子郵件地址,但我需要發送電子郵件到該地址確認,讓用戶點擊一個鏈接,等我寧願避免這種情況的過程。

回答

1

通常OpenID Attribute Exchange可用於請求特殊的用戶屬性,如電子郵件。

Appengine在內部使用AE來請求用戶的電子郵件,但不是其他參數(名稱等)。另外,GAE不會提供請求其他參數的選項。

所以你應該通過聯合登錄獲取用戶電子郵件,但這取決於OpenID提供商,他們不保證總是提供。

因此,有多種解決方案,以這樣的:

  1. 只允許某些OpenID提供提供用戶的電子郵件。

  2. 如果提供商提供電子郵件,使用它,否則要求用戶提供一個。

或者,您可以改爲使用OAuth 2.0並請求用戶配置文件。在大多數情況下(Google,Facebook),這會讓用戶獲得包括電子郵件在內的詳細信息,但並不總是(Twitter)。所以你還需要做1.或2.除了登錄。好處在於,你對Facebook的支持非常普遍。

相關問題