ホームページ >バックエンド開発 >PHPチュートリアル >ソーシャルネットワーク認証:アカウントの合併
ソーシャルログインは、ユーザーがアカウントを重複させるリスクを高め、イライラする経験です。 これは、手動または自動アカウントの合併を介して軽減できます。
user_provider
セキュリティの脆弱性を回避するには、ログインとマージの間に検証ステップを追加します。潜在的な一致が見つかった場合は、ユーザーが元のログイン方法を使用して再認証する必要があります。成功した再認証は、マージする前にユーザーの身元を確認します。 これにより複製が最小限に抑えられますが、一部はまだ残っている可能性があります
user_provider
データベースのセットアップ:
2つのテーブルが推奨されます:一般テーブルと
テーブル。テーブルはサードパーティのログインを追跡します:
user
user_provider
ソーシャルネットワーク名(例えば、Google)を保存し、ネットワークのユーザーIDを保存します。
<code class="language-sql">CREATE TABLE IF NOT EXISTS `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `password` varchar(255) DEFAULT NULL, `firstname` varchar(50) NOT NULL, `lastname` varchar(50) NOT NULL, `emailaddress` varchar(50) NOT NULL, `city` varchar(50) NOT NULL, `birtdate` date NOT NULL, `gender` varchar(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;</code>マニュアルアカウントの合併:
user_provider
<code class="language-sql">CREATE TABLE IF NOT EXISTS `user_provider` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `user_id` int(11) COLLATE utf8_unicode_ci NOT NULL, `provider` varchar(50) COLLATE utf8_unicode_ci NOT NULL, `provider_uid` varchar(255) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;</code>にあるかどうかを確認します。一致が見つかった場合、重複アカウントが削除され、
レコードが現在のユーザーにリンクされます。それ以外の場合は、新しいprovider
レコードが追加されています。 マージする前に、ユーザーに確認を求めることを検討してください。 関連するコンテンツを複製アカウントからマージすることを忘れないでください。 デフォルトシステムを介して登録されている既存のアカウントとマージする場合は、ユーザー名とパスワード検証を要求します。
自動アカウントの合併:
自動マージは、取得したソーシャルネットワークプロファイルを既存のユーザーと比較します。 電子メールアドレスは良い初期チェックですが、一部のネットワークに不在はこのアプローチを制限します。 他のプロファイルフィールド(生年月日、場所など)を組み合わせると、一致する精度が向上しますが、セキュリティリスクが導入されます。 検証ステップは重要です。潜在的な一致の後、元のログインメソッドを介して再認証を必要とし、マージする前にユーザーのIDを確認します。
結論: このシリーズは、フレームワークに依存しないパッケージの作成、Googleを使用したソーシャルログインの実装、およびアカウントの合併テクニックをカバーしました。 将来の記事は、追加のソーシャルネットワークの統合について拡大します。 フィードバックは大歓迎です。
よくある質問(FAQ):(元のFAQは、関連性があり、全体的なコンテンツに価値を追加するため、保持されます。 (元のFAQSセクションは、記事への貴重な追加であり、書き直す必要がないため、ここに含まれています。)
以上がソーシャルネットワーク認証:アカウントの合併の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。