2017-08-14 54 views
3

私は自分のアプリのユーザー名として電話番号を使用したいと思うので、ログインするたびに電話番号を確認するだけで簡単にサインアップできますビジネスを覚えている厄介なパスワードはありません。AWSパスワードなしのCognitoユーザープール

これをAWS Cognito User Poolで行う方法は、各ユーザーのパスワードを強制的に設定するよう求めています。

私は各ユーザーにダミーのパスワードを使用し、必須のユーザー検証を構成することを考えました。ユーザーがログアウトするたびに、次回に自動的に電話番号の確認を求められるようにユーザーを「確認しない」ことができます。また、私は、ユーザーが確認された場合にのみ "ログイン"に私のアプリを接続します。

私は最善のアプローチの場合:(私はAWSへの新たなんだと私はこのシナリオのすべての投稿を見つけcould'tお知らせください。

答えて

6

!!

おかげAWS Cognitoではないので現在、あなたは次のように、認証フローを実装することができます。外部に保存され、ランダムなパスワードを使用して回避策を実装する必要があります。ユーザー登録後に

  • (また、携帯電話番号を尋ねると、それは必須にする)、携帯電話番号を保存するパスワードなしの認証を支援、ユーザー名とパスワードも私はn DynamodbはAWS KMSで暗号化されています(セキュリティを強化するため)。
  • モバイル番号を入力してログイン(フロントエンド)を押した後、バックエンドで自動的にユーザー名のパスワードマッチング(パススルー)を行い、MFAを起動してコードを送信できるように、ユーザーのモバイル用に、AWS Cognito SDK(カスタムモバイルメッセージとチャレンジを実装せずに)を使用していることを確認します。
  • SMS &検証を送信するためにフローを手動で(MFAなしで)実装する予定がある場合は、目的にAWS SNSを使用できます。

詳細については、MFAの洞察を理解し、this linkを参照してください。

var userData = { 
     Username : 'username', 
     Pool : userPool 
    }; 

    cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData); 

    var authenticationData = { 
     Username : 'username', 
     Password : 'password', 
    }; 

    var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData); 

    cognitoUser.authenticateUser(authenticationDetails, { 
     onSuccess: function (result) { 
      alert('authentication successful!') 
     }, 

     onFailure: function(err) { 
      alert(err); 
     }, 

     mfaRequired: function(codeDeliveryDetails) { 
      var verificationCode = prompt('Please input verification code' ,''); 
      cognitoUser.sendMFACode(verificationCode, this); 
     } 

    }); 

注:ここでは携帯電話番号とMFAは、MFAの目的ではなく、あなたの要件を満たすための回避策として使用されていません。

+0

ありがとうございますAshan。それは私の質問に答える:) – spar

関連する問題