現在、Cognito ユーザー プールを使用した Amplify CLI 認証には、ユーザー名によるサインインと電子メールによるサインインの 2 つの主要なモードがあります。前者の場合、必須のユーザー属性としての電子メールの一意性は適用されません。
Cognito サービス自体は、「検証済みの電子メール アドレスによるサインインも許可する」オプション (AWS コンソール、ユーザー プール属性セクション) をサポートしていますが、ユーザー プールの作成時にのみ設定できます (つまり、後で変更することはできません - チェックボックスは無効になっています)。ユーザーがユーザー名または電子メールで認証できるようにしながら、ユーザープール内で電子メールが重複しないようにすることはできますか?
要約すると、私のユースケースには次のものが必要です。
- Amplify を介してユーザーをサインアップするときに、Cognito レベルで電子メール属性の一意性を検証/強制します
Auth.SignUp
。 - ユーザー名ベースのログインを維持しますが、ユーザーは電子メールでもログインできます (つまり、
Auth.SignIn
電子メールまたはユーザー名がユーザー名引数として提供されます)。