我想將我的應用程序從Google帳戶登錄遷移到聯合登錄。我的應用需要用戶的電子郵件地址才能正常工作。GAE/P:聯合登錄是否始終包含用戶的電子郵件地址?
如果用戶使用的主要身份提供者(谷歌,Facebook,雅虎等),是有可能,用戶可以登錄,但不能讓我的應用程序來訪問他或她的電子郵件地址是什麼?
我會要求用戶提供一個電子郵件地址,但我需要發送電子郵件到該地址確認,讓用戶點擊一個鏈接,等我寧願避免這種情況的過程。
我想將我的應用程序從Google帳戶登錄遷移到聯合登錄。我的應用需要用戶的電子郵件地址才能正常工作。GAE/P:聯合登錄是否始終包含用戶的電子郵件地址?
如果用戶使用的主要身份提供者(谷歌,Facebook,雅虎等),是有可能,用戶可以登錄,但不能讓我的應用程序來訪問他或她的電子郵件地址是什麼?
我會要求用戶提供一個電子郵件地址,但我需要發送電子郵件到該地址確認,讓用戶點擊一個鏈接,等我寧願避免這種情況的過程。
通常OpenID Attribute Exchange可用於請求特殊的用戶屬性,如電子郵件。
Appengine在內部使用AE來請求用戶的電子郵件,但不是其他參數(名稱等)。另外,GAE不會提供請求其他參數的選項。
所以你應該通過聯合登錄獲取用戶電子郵件,但這取決於OpenID提供商,他們不保證總是提供。
因此,有多種解決方案,以這樣的:
只允許某些OpenID提供提供用戶的電子郵件。
如果提供商提供電子郵件,使用它,否則要求用戶提供一個。
或者,您可以改爲使用OAuth 2.0並請求用戶配置文件。在大多數情況下(Google,Facebook),這會讓用戶獲得包括電子郵件在內的詳細信息,但並不總是(Twitter)。所以你還需要做1.或2.除了登錄。好處在於,你對Facebook的支持非常普遍。