1

MFA がオプションではない認証を設定しています。つまり、登録後の最初のログイン試行から、ユーザーは MFA を設定するように求められます (この場合、時間ベースのワンタイム パスコード (TOPT) を使用します)。 . このため、次の手順が妥当であることがわかります。

1)ログインフォームからユーザー情報を取得 -Auth.signUp()

2) 手順 1) で取得したユーザー データから、ユーザーに TOPT ベースの MFA が既に設定されているかどうかを判断します。そうでない場合は、ステップ 3) またはステップ 4) に進みます。

3) TOPT が設定されていない場合は、この MFA 機能を設定するために QRCode が生成されるフォームにリダイレクトします。コードを確認したら、ユーザーをログインさせます。

4)TOPTが設定されている場合は、パスコードを要求します。確認後、ユーザーをログインします。

私のジレンマ: ステップ 2) の情報、つまり、ユーザーがまだ認証されていない状態でユーザーに TOPT ベースの MFA が設定されているかどうかを取得できないようです。challengeName手順 1) でペイロードで取得したフラグは、 Auth.signUp()MFA が有効かどうか ( 'MFA_SETUP') に関する情報のみを提供し、TOTP ベースの MFA が既に設定されているかどうかについては情報を提供しません。そのために、メソッドAuth.getPreferredMFA()はトリックを行うものですが、渡されるユーザーオブジェクトが認証された (または既にログインしている) ユーザーを表す場合にのみ機能します。ログインしようとしている (まだログインしていない) ユーザーに対して TOTP MFA が設定されているかどうかを判断する方法はありますか?

また、この問題に取り組むための他の解決策は大歓迎です。最初のログイン自体から MFA が必須であるという、私と同じシナリオに遭遇した人がいるはずです。

4

1 に答える 1

1

私は同じ問題に直面しています。MFA が必要な場合は、モーダルを開いて QR コードを表示し、ユーザーの MFA をセットアップします。

コード: "NotAuthorizedException" メッセージ: "ユーザーのセッションが無効です。" 名前: "NotAuthorizedException"

ただし、ユーザーがログインしてアクセストークンを作成していないため、このエラーが発生します。

これを解決する私の考えは、実際にユーザーにログインしますが、権限を SetupMFA 画面を超えないようにして、セットアップが完了したときにのみ権限を取得することです。

ご自身で進歩はありましたか?解決策があれば聞きたいです。

于 2021-07-08T11:14:18.860 に答える