Symfony 通过OAuth2注册新用户:为将来的登录设置什么作为用户标识符?

Symfony 通过OAuth2注册新用户:为将来的登录设置什么作为用户标识符?,symfony,login,oauth-2.0,fosuserbundle,hwioauthbundle,Symfony,Login,Oauth 2.0,Fosuserbundle,Hwioauthbundle,我已经成功地配置了。问题是,当我更改以下行时: //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的登录按钮时,我再次被问到是否要连接到我的本地测

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

//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\u id或twitter\u id这就是我如何将它们保存为新用户*用户名*。如果我换线

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

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

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


二,。如果有一种全局方法可以知道我是同一个人,那么我应该使用$response对象中的哪些数据作为标识已注册用户的密钥

经过大量测试,如果有人遇到这种情况,我有了答案

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

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

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