0

サインアッププロセスの一環として、すべてのユーザーに対して2要素認証を設定する必要があるサービスのNode + MySQLバックエンドを設計しています。ユーザーはまず、電話番号とパスワード(サインインに使用されている電話番号を使用)を送信します。この際、サーバーはSMSに6桁のコードを送信します。コードを入力した後でのみ、アカウントが完全に作成されます。SQL - ユーザーの中間サインイン情報を保存する方法

これは、ユーザー名/パスワードを入力した後、コードを確認する前に、中間状態のユーザーのデータを格納する方法の問題を提起します。このような「保留中のユーザー」は検索では表示されず、通常のユーザーのすべてのデータを保存する必要はなく、検証されない場合は数日後に削除されます。さらに、すべてのユーザーがTFAを完全にサインオンできるようにする必要があるため、「保留中のユーザー」よりもさらに多くのユーザーが存在します。したがって、すべてのユーザーに "isVerified"フラグを単に格納させることは賢明ではないようです。私は技術レベルではSQLに精通していますが、生産用のデータベースを設計する経験はありませんし、前述の問題を解決するためにどのような代替メカニズムを検討すべきか疑問に思っています。

私の現在のアイデアは、中間のサインアップ情報を格納するのに必要な列だけを持つ、保留中のユーザーの別のテーブルを持つことです。ユーザーが確認すると、実ユーザーテーブルに行が作成され、サインアップ情報がコピーされ、対応する行が保留ユーザーテーブルから削除されます。ただし、これにより、プライマリ電話番号が両方のテーブルで一意であることが保証されています(これはサービスの追加要件です)。

ソリューションを改善するためにどのような方法/技術を検討すべきですか?

答えて

0

このデータは、サーバーにストアセッション情報と同じ方法で保存できます。

関連する問題