0

申し訳ありませんが、この問題についてコメントするほどの評判はありません:モバイル ハブを既存の cognito ユーザー プールにリンクするにはどうすればよいですか? 、提供された答えは私の問題を完全には解決しませんでした。

もう少しわかりやすく説明すると、私は AWS Mobile Hub の React Native ビルドアウトを使用しています。「正常に」認証されましたがAmplify、事前構成された (自動的に統合された) ユーザー プールを使用し続けます。これには、ユーザーがサインアップ プロセスの一部として電話番号を入力する必要がありますが、サインアップ用のフィールドはありません。

上記の問題で@andrew-cが提案したように、Cognitoユーザープールを「認証プロバイダー」の下の事前構成された(自動的に統合された)IDプールにリンクしました。上記の問題で提案されているように、カスタム ユーザー プールを指すように「aws_user_pools_id」プロパティを編集しました。

console.log()ユーザー プール プロパティを構成Amplifyに渡すと、カスタム ユーザー プールが提供されます。

console.log()認証成功からの応答があると、カスタム ユーザー プールも表示されます。phone_numberただし、ユーザーは、事前構成された (自動的に統合された) ユーザー プールのモデル (つまり、必須) に保存され、認証され続けます。つまり、サインアップ後にユーザーが表示される場所です。

私が欠けているものを誰かが知っていますか?

これが私が見ているものですconsole

カスタム ユーザー プール

このコードを実行すると、次のようになります。

  const attributes = {
    name: this.state.name,
    birthdate: this.state.birthdate,
    phone_number: '+011234567890',
  }
  try {
      console.log(Auth.signUp);
      this.setState({ loading: true });
      const response = await Auth.signUp({
        username: this.state.email,
        password: this.state.password,
        attributes,
        validationData: [],
      });
      console.log(`SignUp::onSignUp(): Response#1 = ${JSON.stringify(response, null, 2)}`);
      if (response.userConfirmed === false) {
          this.setState({ authData: response, modalShowing: true, loading: false });
      } else {
          this.onAuthStateChange('default', { username: response.username });
      }
  } catch (err) {
      console.log(`SignUp::onSignUp(): Error ${JSON.stringify(err, null, 2)}`);
      this.setState({ error: err.message, loading: false });
  }

および関連するインポート:

import Amplify, { Auth } from 'aws-amplify';
import aws_exports from '../../aws-exports';
Amplify.configure(aws_exports);

サインアップ時に電話番号を必要としないことを本当に望んでいると言うだけで十分です.これが最も簡単な方法だと思いました.お知らせ下さい。ありがとう!

4

0 に答える 0