Facebook外部在Nopcommerce 3.60

时间:2015-07-27 08:23:42

标签: facebook facebook-graph-api nopcommerce

目前我使用NopCommerce 3.60并使用FB外部登录。

问题:

在我通过FB外部按钮登录Nop后,它返回到URL mydomain.com/login#_=__并带有红色消息(需要电子邮件),并且它不会登录用户。 屏幕截图:http://postimg.org/image/wvgu6wvud/

我尝试了什么:

从头开始重新安装Nop,并且设置低于

提前设置和选项我有:

  • Externalauthenticationsettings.requireemailvalidation 错误
  • 启用自动注册:已选中
  • 注册方法:电子邮件验证

我尝试在Nop.Plugin.ExternalAuth.Facebook文件夹中调试文件名 FacebookProviderAuthorizer.cs 中的源代码,但也没有获得电子邮件值。http://postimg.org/image/qwmphn9tn/

请有人建议我接下来该怎么做才能解决这个问题。

3 个答案:

答案 0 :(得分:2)

固定。您可以看到变更集5bb6815e30ee

答案 1 :(得分:1)

我对Nop不熟悉,但可以在没有电子邮件的情况下在Facebook注册。这就是大多数fb-oauth检查eMail的库,如果没有电子邮件,他们会创建一个user-id@facebook.com电子邮件地址。

也许你的fb-oauth的Nop库已经过时了?

所以请检查是否有这样的功能 - 如果没有,你可能会遇到问题。

答案 2 :(得分:1)

不知何故FB在oauth中不包含电子邮件。您可以使用此方法获取电子邮件并提供该电子邮件以进行注册。

//as part of the uri for the webrequest, include all the fields you want to use
var request = WebRequest.Create("https://graph.facebook.com/me?fields=email,name&access_token=" + Uri.EscapeDataString(authorization.AccessToken));
using (var response = request.GetResponse())
{
    using (var responseStream = response.GetResponseStream())
    {
        System.IO.StreamReader streamReader = new System.IO.StreamReader(responseStream, true);
        string MyStr = streamReader.ReadToEnd();
        JObject userInfo = JObject.Parse(MyStr);

        //now you can access elements via: 
        // (string)userInfo["name"], userInfo["email"], userInfo["id"], etc.
    }
}