Python GAE/P:联邦登录是否始终包括用户';谁的电子邮件地址?

Python GAE/P:联邦登录是否始终包括用户';谁的电子邮件地址?,python,google-app-engine,openid,federated-identity,Python,Google App Engine,Openid,Federated Identity,我想将我的应用程序从google帐户登录迁移到联合登录。我的应用程序需要用户的电子邮件地址才能正常运行 如果用户使用主要的身份提供商(Google、Facebook、Yahoo等),用户是否可以登录但不允许我的应用访问他或她的电子邮件地址 我可以要求用户提供电子邮件地址,但我需要向该地址发送电子邮件进行确认,让用户单击链接等。我宁愿避免该过程。通常可用于请求特殊的用户属性,如电子邮件 Appengine在内部使用AE请求用户发送电子邮件,但不使用其他参数(名称等)。此外,GAE不提供请求其他参数

我想将我的应用程序从google帐户登录迁移到联合登录。我的应用程序需要用户的电子邮件地址才能正常运行

如果用户使用主要的身份提供商(Google、Facebook、Yahoo等),用户是否可以登录但不允许我的应用访问他或她的电子邮件地址

我可以要求用户提供电子邮件地址,但我需要向该地址发送电子邮件进行确认,让用户单击链接等。我宁愿避免该过程。

通常可用于请求特殊的用户属性,如电子邮件

Appengine在内部使用AE请求用户发送电子邮件,但不使用其他参数(名称等)。此外,GAE不提供请求其他参数的选项

所以,您应该通过联邦登录获取用户电子邮件,但这取决于OpenID提供程序,并且不能保证他们总是提供

因此,有多种解决方案:

  • 仅允许提供用户电子邮件的某些OpenID提供程序

  • 若提供商提供电子邮件,请使用它,否则要求用户提供电子邮件

  • 或者,您也可以使用OAuth 2.0,并请求用户配置文件。在大多数情况下(谷歌、脸谱网),但不总是(推特),这会获取用户的详细信息,包括电子邮件。所以你仍然需要做1。或2。除了登录。这样做的好处是,你会得到Facebook的广泛支持。

    通常可以用来请求特殊的用户属性,比如电子邮件

    Appengine在内部使用AE请求用户发送电子邮件,但不使用其他参数(名称等)。此外,GAE不提供请求其他参数的选项

    所以,您应该通过联邦登录获取用户电子邮件,但这取决于OpenID提供程序,并且不能保证他们总是提供

    因此,有多种解决方案:

  • 仅允许提供用户电子邮件的某些OpenID提供程序

  • 若提供商提供电子邮件,请使用它,否则要求用户提供电子邮件

  • 或者,您也可以使用OAuth 2.0,并请求用户配置文件。在大多数情况下(谷歌、脸谱网),但不总是(推特),这会获取用户的详细信息,包括电子邮件。所以你仍然需要做1。或2。除了登录。好的一面是,你会得到Facebook的广泛支持