Facebook, Twitter等等.登录到网站不抓取电子邮件


Facebook, Twitter etc.. Login to website not fetching emails

我已经设法得到一个系统工作,从Facebook, twitter,谷歌等登录到我们的网站。它是wordpress社交登录插件的修改版本。

它是从社交网络获取电子邮件地址并将其添加到我们系统的用户帐户中。现在不是这样了。它是添加一个类似于这样的电子邮件地址。a85b287d8d30ca2b1ee4cd2fb31f6f7a@example.com

我如何让它再次获取正确的地址。

这是真的,我正在修补设置,使电子邮件地址和用户名相同,但是它覆盖了用户名与电子邮件字段,而不是其他方式。

编辑,

我已经撤消了我的修补,但它仍然这样做。我正在检查其他脚本干扰,并删除与此无关的所有错误的社会整合。到目前为止没有结果。

BY THE WAY——

example.com是真正的意思,这不是我或任何人的域名代码。

此外——

我在一个文件夹里找到了这些行。显然,它不可能正在获取电子邮件,因为这是我们收到的。
// generate an email if none
        if ( ! isset ( $user_email ) OR ! is_email( $user_email ) ){
            $user_email = strtolower( $provider . "_user_" . $user_login ) . "@example.com";
        }
        // email should be unique
        if ( email_exists ( $user_email ) ){
            do
            {
                $user_email = md5(uniqid(wp_rand(10000,99000)))."@example.com";
            } while( email_exists( $user_email ) );
        }

显然这是在创建我们的虚拟电子邮件地址,那么问题是为什么它不能从社交网络中获得正确的电子邮件地址。

任何想法?

问题是由重复的信息引起的。该插件使用来自社交网站的用户名。因为这主要是电子邮件地址,所以它是检索的数据。

在测试模式下,来自这些社交网络的被测试帐户使用已经在该网站注册的电子邮件地址。因此,它检测到它们已经存在,并分配一个随机生成的程序编号,如果没有提供电子邮件地址,它应该这样做。这其实很聪明。真可惜花了半天时间才锻炼出来。

所以如果电子邮件地址是唯一的,它工作得很好。

当我们处于测试模式时另一个用户注册了。这导致了调查。让Facebook大为恼火的是,我们设置了4个账户进行测试,每个账户都有唯一的电子邮件地址,结果都很顺利。

现在Twitter已经确认是正确的,我们知道其余的都很好。

解决方案…

确保用户帐户中没有重复的电子邮件地址