php - サードパーティのログインフォームの設計上の問題
習慣沉默
習慣沉默 2017-05-16 13:07:14
0
2
820

ユーザー テーブル
ID 名
その後、各サードパーティが新しいテーブルを追加します
ex WeChat
id openid uid (メイン ユーザー テーブル ID) .....

QQ
id openid uid

このように、異なるサードパーティを使用するユーザーは異なるアカウントを持ち、1 人のユーザーが複数のアカウントを持つことになります。
データの相互運用性を実現するにはどうすればよいですか? たとえば、WeChat ログインを QQ にバインドし、WeChat と QQ の情報をバインドすることができます。 QQ は将来的に同期されます。

習慣沉默
習慣沉默

全員に返信(2)
習慣沉默

いくつかの方法があります:
最初の冗長フィールド
ユーザー テーブル user: id 名前 電話 email....
サードパーティ ログイン テーブル ログイン: id uid wxopenid qqopenid...
作成時に '' を与えて、後でバインドするときに関連するフィールド。
2 番目のタイプのテーブル分割
ユーザー テーブル: user: id 名前電話メール....
サードパーティ テーブル: openid: id wx_openid qq_openid....
関係テーブルの関係: uid oid ここでの oid は 3 番目のタイプです。パーティー テーブル
この設計の目的は、データが多すぎると結合操作に時間がかかるため、結合操作の必要性を排除することです。コード ロジック層では、まず現在ログに記録されている関係の oid を取得します。 -in uid を選択し、openid テーブル内の関連データを選択します。

すべてを 1 つのテーブルに置くことはお勧めできません。 。 。

いいねを押す +0
左手右手慢动作

1. テーブルを使用しないのはなぜですか? テーブルには、使用されているサードパーティ ログインの種類を示すフィールドがあります。

2. 2 つの異なるサードパーティでログインすると、確かに 2 つのアカウントが生成されます。この時点でこれら 2 つのアカウントを統合する場合は、より複雑になり、どのデータを使用するかが関係します。もちろん、これを行うことは可能であり、最悪の場合、情報が複数のアカウントに同時に送信されることになります。

一般的な考え方は、まずアカウントを取得することです (アカウント ソースは、ある種のサードパーティのログイン、電子メール登録、携帯電話の登録にすることができます)。いずれにせよ、アカウントを取得し、その後、新しいサードパーティのアカウントをバインドする必要があります。ログイン中。 SF アカウント設定、/user をパラメータ化できますか...


更新、1 つのテーブルで複数のサードパーティ ログインを維持することについての私の個人的な理解
テーブル フィールド - oauth テーブル
id // 自動インクリメント可能
type // wx、qq、weibo などにすることができます
user_id, // // mysql-text タイプのテーブルの id
データは、JSON 形式であるか、さまざまなタイプに対応する JSON 形式を使用することをお勧めします。データの読み取りと保存には違いはありません。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート