OAuth:如何从外部提供商 (GitHub) 获取电子邮件地址?

OAuth : How to get email address from external provider (GitHub)?

我网站上的用户可以通过 GitHub 等外部提供商进行身份验证。此调用后进程运行良好

Request.GetOwinContext().Authentication.Challenge(properties, AuthenticationProvider)

但有一点是 GitHub 没有 return 电子邮件地址。

在上面的调用之后,它会生成一个授权 url 和 scope=user。也许这就是重点。我认为如果 scope=user,user:email 如前所述 there

应该可以工作

我尝试向 properties 添加参数,但没有成功。有人可以帮我解决这个问题吗?

But one point is that GitHub doesn't return email address.

这可能会受到用户在 GitHub 上的设置的影响。有一个选项 Settings / Profile / Public email,如果用户选择 public 一封电子邮件,您的应用程序将看到它,就像下面的声明 #3