3

我正在尝试使用本月发布的MVC 4 oAuth。 任何人都可以指出我在哪里可以添加电子邮件地址,以便我可以存储与用户属性?MVC 4 oAuth使用Facebook不返回电子邮件地址

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

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

感谢, 维克多

回答

0

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

return FB.login(function(response) { 
    if (response.authResponse) { 
     return window.location = '/auth/facebook/callback'; 
    } 
    }, {scope: 'email,user_likes'} 
); 
5

这是因为Facebook允许其用户在指定哪些数据与第三方认证服务,比如你的网站维克多共享。并且默认情况下,我相信电子邮件地址(是的,您可以添加到Facebook帐户有多个)不会被默认共享。用户必须进入并明确地与第三方分享他们的电子邮件地址 - 这是我不认为有人使用过的。

Facebook部队共享的唯一“强制”共享数据是FullName(例如“Eric Duncan”)。其他一切都是可选的,供用户共享。

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

因此,你必须为什么是有保证的 - 在Facebook的情况下显示名称(在MVC 4.0 OAuth中称为“用户名”)的代码。其他一切都不能保证。

我在我的OAuth应用程序(包括Facebook连接)中执行的操作是在第三方成功验证后,在回调URL页面上(例如MVC 4.0中的ExternalLoginConfirmation.cshtml),我会要求用户输入他们的Display姓名,电子邮件地址,出生日期等。并使用自定义视图模型上的标准数据注释使这些字段成为必需。

相关问题