首页 文章

GAE / P:联合登录是否始终包含用户的电子邮件地址?

提问于
浏览
1

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

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

我可以要求用户提供电子邮件地址,但我需要发送一封电子邮件到该地址进行确认,让用户点击链接等等 . 我宁愿避免这个程序 .

1 回答

  • 1

    通常OpenID Attribute Exchange可用于请求特殊用户属性,如电子邮件 .

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

    因此,您应该通过联合登录获取用户电子邮件,但这取决于OpenID提供商,并且不保证始终提供它 .

    所以有多种解决方案:

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

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

    或者,您可以改用OAuth 2.0并请求用户 Profiles . 这可以为您提供详细信息,包括大多数情况下的电子邮件(Google,Facebook),但并不总是(Twitter) . 所以除了登录之外你还需要做1.或2.好处是你对Facebook的支持非常普遍 .

相关问题