バックエンドとしてnodejsを使用してreact.jsアプリケーションを作成しています。電子メール/パスワードを使用したログイン、Googleを使用したログイン、電話を使用したログインにこれらの認証方法を使用したいと考えています。今度は、Uniquenessに署名しながらユーザーを保持したいと考えています。これらのいずれについても、ユーザーがメール/パスワードを使用して登録するときなど、他の詳細も取得します。その後、ユーザーの電話番号も取得します。電話を使用してログインすることでユーザーがその電話番号を使用しないようにします。別のアカウントの作成方法。
2 番目の問題は、アプリケーションにユーザー、販売、管理者の 3 つのユーザー ロールがあることです。ユーザーごとに異なる登録フォームがあります。メールを使用しているユーザーが営業担当者として登録するとき、そのユーザーも同じメールを使用してユーザーとして登録できるようにしたいのですが、React アプリケーションで firebase SDK を使用するときに、すでに存在するため、ユーザーにエラーがスローされます。
Firebase Authentication はこの問題を解決できます。ユーザーを一意にし、ロールベースの認証を有効にしたいと考えています。 データベースとして firestore を使用しています
Asdoc, "認証プロバイダーの認証情報を既存のユーザー アカウントにリンクすると、ユーザーが複数の認証プロバイダーを使用してアプリにログインできるようになります。認証に関係なく、ユーザーは同じ Firebase ユーザーによって識別されますログインに使用したプロバイダーの ID。」
linkWithCredential()
的文档a> メソッドとlinkWithPhoneNumber()
メソッドも参照してください。(ロールごとに 1 つずつ、複数のクレームを追加できます) またはFirestore ドキュメント に基づいてカスタム クレームを使用できます。ただし、ユーザーがロールを選択するためのメカニズム (質問では「さまざまな登録フォーム」と述べました) と、対応する GUI 表示をアプリケーションに自分で実装することになります。