3

我正在试验本月发布的 MVC 4 oAuth。谁能指出我可以在哪里添加电子邮件地址,以便我可以将其与用户属性一起存储?

我需要能够发送欢迎电子邮件,但不知道从哪里开始使用开箱即用的 MVC 4 oAuth。

理想情况下,成功登录后,我希望在我的控制器中接收来自 Facebook 的用户信息并将其放入表中,以便离线进程可以发送欢迎电子邮件。

谢谢,维克多

4

2 回答 2

5

这是因为 Facebook 允许其用户指定与第三方身份验证服务共享哪些数据,例如您的网站 Victor。默认情况下,我相信电子邮件地址(是的,您可以添加多个到 facebook 帐户)默认不共享。用户必须进入并明确与第三方共享他们的电子邮件地址——我认为没有人使用过。

Facebook 强制共享的唯一“强制性”共享数据是全名(例如“Eric Duncan”)。其他所有内容都是可选的供用户共享。

例如,我有我的 Facebook 设置只分享我的生日,但不分享出生年份。我也有我的 Facebook 设置来分享我的兴趣,但不是我的电子邮件。

因此,您必须为保证的内容编写代码——Facebook 的显示名称(在 MVC 4.0 OAuth 中称为“用户名”)。其他一切都无法保证。

我在我的 OAuth 应用程序(包括 Facebook 连接)中所做的是在成功通过第 3 方身份验证后,在回调 url 页面(例如 MVC 4.0 中的 ExternalLoginConfirmation.cshtml)上,我会要求用户输入他们的显示名称、电子邮件地址,生日等,并使用自定义视图模型上的标准数据注释使这些字段成为必需。

于 2012-10-14T15:53:38.247 回答
0

为了让 Facebook 返回电子邮件,您必须在范围中指定它。例如,使用 JS SDK 你会做类似的事情......

return FB.login(function(response) {
    if (response.authResponse) {
      return window.location = '/auth/facebook/callback';
    }
  }, {scope: 'email,user_likes'}
);
于 2014-01-09T00:53:16.397 回答