拡張可能にする方法
まず、これらすべてのapiがログインに同じメカニズムを使用していることに注意してください。これらはすべて、認証にOAuthを使用します。これは、一般的なOAuthライブラリから始めて活用する必要があります。認証に独自のライブラリを使用しないでください。これらは他のプロバイダーでは使用できません。OAuth2のコツをつかめば、プロバイダーを追加するのは非常に簡単です。
ツイッターはまだOAuth2の時流に乗っていないため、残念ながら2つ必要です。
OAuthでは、認証者用のインターフェースを作成する必要があります。トークンはサーバー間で交換されます。すべての通信を処理できる1つのエントリポイントを作成します。
トークンは、アカウントとは別のテーブルに保存する必要があります。これは、トークンが複数のトークンおよび複数のリンクされたプロファイルになる可能性があるためです。一部のサービスは2つのトークンを提供しますが、そのうちの1つは更新トークンです。
次に、必要な他の機能をカプセル化するインターフェースを設計します。私はこれのために個別のRESTサービスを個人的にセットアップします。これにより、認証を他の場所に簡単に拡張できます。
通信にJSONを使用するサービスもあれば、XMLを使用するサービスなどもあります。フロントユーザーの場合、すべてを統合する必要があります。これは非常に苦痛なプロセスですが、ここでいくつかの共通の根拠を導き出すことは可能です。
ここでの別の問題は、すべてのサービスが同じ機能を提供するわけではないということです。これは、指定したとおりにサービスが完全なAPIを提供できないことを意味します。ここで戦略を立てる必要があります。これにより、アプリケーションを適切にダウングレードできます。
これにより、新しいサードパーティプロバイダーを簡単に追加できるようになります。
トークンの問題
トークンには時間が限られているため、トークンがまだ使用可能かどうかを確認できるcronジョブがいくつか必要です。そうでない場合は削除する必要があります。このメカニズムによってトークンを更新することもできます。
ユーザーがトークンを撤回することが時々起こります。これに備えてください。
データストレージ
この設計がある場合、必要なデータについて考える必要があります。これは、作成したばかりのインターフェイスに一部従います。このためにいくつかのテーブルを設計し、データが実際に取得可能かどうかを確認します。一部のサービスでは、大量のデータを取得できません。また、必要なデータが多いほど、プライバシーメッセージが大きくなることも考慮する必要があります。必要に応じて控えめにしてください。さもないと、ユーザーは使用しません。
追加の検証のために、プロファイルを別個のユーザーにリンクされたテーブルに保存できます。これにより、誰かに関するより多くの情報が提供されます。
また、現地の法律を確認してください。一部のデータについては、追加の予防措置が必要です。
最後
に、自分のサービスでアカウントを作成しないという過ちを犯さないでください。ユーザーがfacebookから禁止された場合、ユーザーは事実上サービスにログインできなくなります。これは、作成したくない状況です。これはしばしば見落とされます。