【问题标题】:How to get email from social network (Identity framework)如何从社交网络获取电子邮件(身份框架)
【发布时间】:2015-03-15 00:21:21
【问题描述】:

我有什么:带有 Identity 框架的 ASP.NET WebAPI 应用程序。

我想要的:使用 twitter 和 facebook 进行注册和认证。

问题出在哪里:身份框架不要求提供电子邮件和其他个人信息。它只返回用户名。

谢谢。

【问题讨论】:

  • 你没读过的内容FAQ, How to Ask
  • 请注意,twitter 不通过 OAuth 提供电子邮件地址。 Facebook 和 Google 可以,但 twitter 不行。

标签: c# .net asp.net-mvc asp.net-web-api asp.net-identity


【解决方案1】:

在此代码块之前的 Startup.Auth.cs 文件中,

app.UseFacebookAuthentication(facebookAuthenticationOptions);

你应该添加

facebookAuthenticationOptions.Scope.Add("email");

【讨论】:

  • 然后要获取电子邮件,请在身份验证后从声明 cookie 中检查电子邮件声明。
  • 请注意,即使添加该范围,如果目标用户不共享他/她的电子邮件(FB 设置),那么框架将无法获取它
【解决方案2】:

Identity 使用 OAuth。

推特:

API 不会向您返回电子邮件地址。如果您对用户的电子邮件地址感兴趣,则必须在自己的应用程序中向用户索取,这是一种完全不同的行为。

谷歌+:

How to get user email from google plus oauth

脸书:

Get ExtraData from MVC5 framework OAuth/OWin identity provider with external auth provider

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    相关资源
    最近更新 更多