目前我使用NopCommerce 3.60并使用FB外部登录。
问题:
在我通过FB外部按钮登录Nop后,它返回到URL mydomain.com/login#_=__并带有红色消息(需要电子邮件),并且它不会登录用户。 屏幕截图:http://postimg.org/image/wvgu6wvud/
我尝试了什么:
从头开始重新安装Nop,并且设置低于
提前设置和选项我有:
我尝试在Nop.Plugin.ExternalAuth.Facebook文件夹中调试文件名 FacebookProviderAuthorizer.cs 中的源代码,但也没有获得电子邮件值。http://postimg.org/image/qwmphn9tn/
请有人建议我接下来该怎么做才能解决这个问题。
答案 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.
}
}