私はグリーンフィールドプロジェクトに着手しており、バックエンドのサインアップ/サインインと認証の部分を非常に長い間行っていないか、構築していないため、今日の良い習慣に関する私の知識は非常に限られています。基本的に、基本的なローカルサインアップ/サインイン機能のみを実行しました。
このアプリはソーシャルネットワーキングに関連しているため、数年の間に数千人のユーザーが予想されます。したがって、明らかに、できるだけクリーンなアーキテクチャから始めたいと思います。しかし、「将来を見据えて」、コストを予測することも試みます。
今、プロジェクトのために私はサインアップ/ログインオプションが必要です:
Auth0、AWS Cognito(特にこのサービスに関心がある)などのマネージドサービスを調査しています。
しかし、プロセスとユーザーアカウント管理の設定方法を理解しているかどうかはわかりません。リレーショナルDBを使用する場合でも、アプリケーションでユーザーアカウントモデルを作成する必要がありますか?
または、ユーザー管理全体(ユーザーアカウントモデルとデータを含む)をマネージド認証サービスに委任しますか?したがって、アプリケーションでの認証とユーザーアカウント管理に関連する唯一の機能は、マネージド認証サービスの呼び出しです...?
複数のIDプロバイダー間でユーザー管理を統合するには、常に独自のID(IDを持つユーザーモデル)を作成する必要があると思います。
次に、あなたはmapユーザーをさまざまなIDプロバイダー(ローカル(メールとパスワード)、OAuth、Auth0など)に割り当てます。
ユーザーが別のIDプロバイダーを介してもログインしたい場合、またはそれらの1つへのアクセスを失った場合でも、サイトへのアクセスは失われません。