1

我已经成功地配置了这个。问题是,当我更改以下行时:

//I have set all requested data with the user's username
//modify here with relevant data
$user->setUsername($username);
$user->setEmail($username);
$user->setPassword($username);

进入我想要检索的信息,例如真实姓名、电子邮件、我生成的密码等,当我单击 Facebook 的登录按钮时,我再次被询问是否要连接到我的本地测试站点。

据我了解,在我上面链接的文档中,这是:

$user = $this->userManager->findUserBy(array($this->getProperty($response) => $username));

是检查用户是否存在的行,初始代码本身将facebook_idtwitter_id(这是我保存它们的方式)设置为新用户*用户名*。如果我换行

$user->setUsername($username); //same as facebook/twitter _id

进入

$user->setUsername(setProperUsername()); //sets a proper unique username

然后每次我尝试登录时,我都会收到“注册”消息。所以,我对它的工作原理有一个大致的了解,但我很难理解一些事情:

1.当我在 Facebook 注册并用 twitter 登录时,我再次注册,不知道创建行,但更新/填充缺少的 twitter_id 字段,用户名保持不变。当我以前的数据来自 Facebook 而不是 Twitter 时,HWI/FOSUB 怎么会知道我是同一个人?

2.如果有一种全局方式可以知道我是同一个人,我应该使用$response对象中的哪些数据作为键来识别已注册的用户?

4

1 回答 1

0

在对此进行了大量测试之后,如果有人遇到这种情况,我会有答案

  1. 检查您的default_target路径,使其为/profile/account等,不要默认再次登录。此外,如果用户已经登录,请不要让他访问您的登录页面。这就是我的数据被更新的原因。我基本上是用我的 Facebook 帐户登录并用我的 Twitter 帐户注册的。

  2. ,没有全球性的方式可以知道我是同一个人。$response对象根据提供商策略向我发送了该特定用户的唯一 ID 。您可以使用它来识别已经注册的用户并登录。

于 2014-02-13T13:37:36.333 回答