サインアッププロンプトのカスタマイズが収集したエンドユーザーデータの検証と保管にアクションを使用する (1)
サインアッププロンプトのカスタマイズでpre-user-registration
(ユーザー登録前)トリガーを使用すると、サインアッププロンプトでエンドユーザーが提供したデータ(ユーザーの電話番号や位置情報など)をuser_metadata
に追加することができます。このデータを任意で検証して、プロンプトに検証エラーを表示することもできます。
前提条件
サインアッププロンプトにフィールドを追加する
入力ポイントを使ってプロンプトにカスタムフィールドを挿入するには、Management APIを使用します。この例では、以下のコンテンツをulp-container-form-content-start
の挿入ポイントに追加します。
<div class="ulp-field">
<label for="first-name">First Name</label>
<input type="text" name="ulp-first-name" id="first-name">
</div>
Was this helpful?
その結果、サインアッププロンプトに[First Name(名)]セクションが含まれます。

ユーザー登録前トリガーにアクションを作成する
カスタムのpre-user registration(ユーザー登録前)アクションを構築するには、[Actions(アクション)] > [Library(ライブラリー)] > [Build Custom(カスタムの構築)]に移動します。

コードエディターで、以下のようにonExecutePreUserRegistration
ハンドラーを更新します。
exports.onExecutePreUserRegistration = async (event, api) => {
const firstName = event.request.body['ulp-first-name'];
api.user.setUserMetadata("firstName", firstName);
};
Was this helpful?
ユーザー入力を任意で検証し、api.validation.error
を呼び出して検証エラーを送信してから、アクションをデプロイすることもできます。
exports.onExecutePreUserRegistration = async (event, api) => {
const firstName = event.request.body['ulp-first-name'];
if(!firstName) {
api.validation.error("invalid_payload", "Missing first name");
return;
}
api.user.setUserMetadata("firstName", firstName);
};
Was this helpful?
フローにアクションを追加する
[Actions(アクション)] > [Flows(フロー)] > [Pre User Registration(ユーザー登録前)] > [Add Action(アクションの追加)] > [Custom(カスタム)]に移動し、新しいアクションを登録フローにドラッグ&ドロップしてから、[Apply(適用)]を選択します。

アクションをテストする
テストフローでアカウントにサインアップして、[First Name(名)]フィールドを空のままにします。送信すると、エラーが表示されます。

[First Name(名)]フィールドに名前を入力すると、送信が成功します。

user_metadataにデータが保存されたことを確認する
[User Management(ユーザー管理)] > [Users(ユーザー)]に移動し、[Details(詳細)]タブでデータが保存されていることを確認します。
