gpt4 book ai didi

asp.net-mvc-5 - Facebook MVC 5 ASP.NET 身份 - 某些用户的电子邮件为空

转载 作者:行者123 更新时间:2023-12-03 03:47:52 24 4
gpt4 key购买 nike

这是我一个月来试图解决的问题。 (尝试了任何可能的文章/代码)。

在ExternalLoginCallback操作中,AuthenticationManager.GetExternalLoginInfoAsync()返回一个有效对象(包含所有提供商详细信息),但某些Facebook用户的电子邮件为空

绝大多数 Facebook 登录电子邮件都是预设的。但对于大约 30% 的登录,我会遇到异常,因为电子邮件为空。

幸运的是,不久前我创建了一个重现该问题的 Facebook 用户。我在本地主机中创建了一个无菌测试环境,实际上该用户的电子邮件为空,而其他用户则正常。

*通过这个 Facebook 用户,我可以在任何大型商业网站(例如 IMDB)中正常登录。

1) 我使用 VS2013 创建了一个干净的 MVC 5 项目。

2)更新了所有有关身份验证的包:

<package id="Microsoft.AspNet.Identity.Core" version="2.1.0" targetFramework="net45" />
<package id="Microsoft.AspNet.Identity.EntityFramework" version="2.1.0" targetFramework="net45" />
<package id="Microsoft.AspNet.Identity.Owin" version="2.1.0" targetFramework="net45" />
<package id="Microsoft.Owin" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Security" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Security.Cookies" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Security.Facebook" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Owin.Security.OAuth" version="3.0.0" targetFramework="net45" />
<package id="Owin" version="1.0" targetFramework="net45" />

3) 取消标记 Startup.Auth.cs 中的 facebook 部分并添加以下内容:

var facebookAuthOptions = new FacebookAuthenticationOptions();
facebookAuthOptions.AppId = "***";
facebookAuthOptions.AppSecret = "***";
facebookAuthOptions.Scope.Add("email");
app.UseFacebookAuthentication(facebookAuthOptions);

更新

在该 Facebook 用户的设置屏幕中,我尝试将电子邮件更改为另一电子邮件,然后将其更改回来。现在电子邮件来得很好!怎么会这样 ?

<小时/>

最佳答案

如果该用户没有主电子邮件地址,则可能会发生这种情况。受影响的用户必须删除电子邮件,保存设置,然后重新添加地址,重新确认,然后将其设为主要地址。此功能在 IMDB 等其他网站上有效的原因可以解释为该网站不需要从 FB 返回电子邮件地址。它只使用提供的任何信息。

关于asp.net-mvc-5 - Facebook MVC 5 ASP.NET 身份 - 某些用户的电子邮件为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26532442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com