in packages/ui/src/machines/authenticator/signUp.ts [282:321]
async signUp(context, _event) {
const { formValues, loginMechanisms } = context;
const [primaryAlias = 'username'] = loginMechanisms;
const { [primaryAlias]: username, password } = formValues;
const attributes = pickBy(formValues, (_, key) => {
// Allowlist of Cognito User Pool Attributes (from OpenID Connect specification)
// See: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html
switch (key) {
case 'address':
case 'birthdate':
case 'email':
case 'family_name':
case 'gender':
case 'given_name':
case 'locale':
case 'middle_name':
case 'name':
case 'nickname':
case 'phone_number':
case 'picture':
case 'preferred_username':
case 'profile':
case 'updated_at':
case 'website':
case 'zoneinfo':
return true;
// Otherwise, it's a custom attribute
default:
return key.startsWith('custom:');
}
});
return await services.handleSignUp({
username,
password,
attributes,
});
},