我正在试验本月发布的 MVC 4 oAuth。谁能指出我可以在哪里添加电子邮件地址,以便我可以将其与用户属性一起存储?
我需要能够发送欢迎电子邮件,但不知道从哪里开始使用开箱即用的 MVC 4 oAuth。
理想情况下,成功登录后,我希望在我的控制器中接收来自 Facebook 的用户信息并将其放入表中,以便离线进程可以发送欢迎电子邮件。
谢谢,维克多
我正在试验本月发布的 MVC 4 oAuth。谁能指出我可以在哪里添加电子邮件地址,以便我可以将其与用户属性一起存储?
我需要能够发送欢迎电子邮件,但不知道从哪里开始使用开箱即用的 MVC 4 oAuth。
理想情况下,成功登录后,我希望在我的控制器中接收来自 Facebook 的用户信息并将其放入表中,以便离线进程可以发送欢迎电子邮件。
谢谢,维克多
这是因为 Facebook 允许其用户指定与第三方身份验证服务共享哪些数据,例如您的网站 Victor。默认情况下,我相信电子邮件地址(是的,您可以添加多个到 facebook 帐户)默认不共享。用户必须进入并明确与第三方共享他们的电子邮件地址——我认为没有人使用过。
Facebook 强制共享的唯一“强制性”共享数据是全名(例如“Eric Duncan”)。其他所有内容都是可选的供用户共享。
例如,我有我的 Facebook 设置只分享我的生日,但不分享出生年份。我也有我的 Facebook 设置来分享我的兴趣,但不是我的电子邮件。
因此,您必须为保证的内容编写代码——Facebook 的显示名称(在 MVC 4.0 OAuth 中称为“用户名”)。其他一切都无法保证。
我在我的 OAuth 应用程序(包括 Facebook 连接)中所做的是在成功通过第 3 方身份验证后,在回调 url 页面(例如 MVC 4.0 中的 ExternalLoginConfirmation.cshtml)上,我会要求用户输入他们的显示名称、电子邮件地址,生日等,并使用自定义视图模型上的标准数据注释使这些字段成为必需。
为了让 Facebook 返回电子邮件,您必须在范围中指定它。例如,使用 JS SDK 你会做类似的事情......
return FB.login(function(response) {
if (response.authResponse) {
return window.location = '/auth/facebook/callback';
}
}, {scope: 'email,user_likes'}
);