サインイン、SMS検証などにAWS Amplify AuthenticatorUIコンポーネントを使用しています。
サインアップできます。MFAなしでサインインできます。SMS MFAを有効にすると、「AmplifyConfirmSignIn」コンポーネントがSMSコードを要求しますが、コードを入力すると、以下のエラーがスローされます。
Uncaught (in promise) TypeError: Cannot read property 'challengeName' of undefined
以下は私のコードです、
{ authState !== 'signedin' ?
<AmplifyAuthenticator usernameAlias="email" amplifyConfig={awsconfig} >
<div slot="sign-in" className="amplifyCont">
<AmplifySignIn slot="sign-in" usernameAlias="email" />
</div>
<div slot="sign-up" className="amplifyCont">
<AmplifySignUp
slot="sign-up"
usernameAlias="email"
formFields={[
{
type: "name",
label: "First Name",
placeholder: "John",
required: true,
},
{
type: "family_name",
key: "family_name",
label: "Last Name",
placeholder: "Doe",
required: true,
},
{
type: "email",
label: "Email Address",
placeholder: "[email protected]",
required: true,
},
{
type: "password",
label: "Password",
placeholder: "Password with both cases, symbol and number",
required: true,
},
{
type: "phone_number",
label: "Phone Number",
placeholder: "Primary Contact",
required: false,
},
]}
/>
</div>
<div slot="forgot-password" className="amplifyCont">
<AmplifyForgotPassword slot="forgot-password" />
</div>
<div slot="require-new-password" className="amplifyCont">
<AmplifyRequireNewPassword slot="require-new-password" />
</div>
<div slot="confirm-sign-in" className="amplifyCont" >
<AmplifyConfirmSignIn slot="confirm-sign-in" />
</div>
</AmplifyAuthenticator>
:
<div className="App">
AuthenticatorのドキュメントとGoogleを検索しましたが、解決策が見つかりませんでした。私を助けてください。
解決策を見つけました。confirm-signinコンポーネントに「user」属性を提供する必要があります。
<AmplifyConfirmSignIn slot="confirm-sign-in" user={userVal} />
onAuthUIStateChangeハンドラーを介してサインインしたユーザーの詳細を取得しました。
React.useEffect(() => {
return onAuthUIStateChange((nextAuthState, authData) => {
setUserVal(authData);
});}, []);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加