これをうまく設定できました。問題は、以下の行を変更するときです:
//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_idまたはtwitter_id (これは私がそれらを保存する方法です) を新しいUser * username * として設定します。ラインを変えたら
$user->setUsername($username); //same as facebook/twitter _id
の中へ
$user->setUsername(setProperUsername()); //sets a proper unique username
その後、ログインしようとするたびに「登録」メッセージが表示されます。だから、私はそれがどのように機能するかについての一般的な考えを持っていますが、いくつかのことを理解するのに苦労しています:
1. Facebook に登録して twitter にログインすると、再度登録すると、既知の行は作成されませんが、欠落している twitter_id フィールドが更新/入力され、ユーザー名はそのまま残ります。以前のデータが Twitter ではなく Facebook からのものだったのに、なぜ HWI/FOSUB は私が同一人物であると知っているのでしょうか?
2.私が同一人物であることを世界的に知る方法がある場合、$responseオブジェクトのどのデータをキーとして使用して、既に登録されているユーザーを特定する必要がありますか?