diff --git a/cspell.json b/cspell.json index d4d087165c3..a920e8a8e0d 100644 --- a/cspell.json +++ b/cspell.json @@ -641,6 +641,7 @@ "frontend", "frontends", "fullheight", + "fullname", "Gapi", "ge", "geo_point", diff --git a/src/pages/[platform]/build-a-backend/auth/concepts/user-attributes/index.mdx b/src/pages/[platform]/build-a-backend/auth/concepts/user-attributes/index.mdx index 024ef5096f6..6cac2806f7f 100644 --- a/src/pages/[platform]/build-a-backend/auth/concepts/user-attributes/index.mdx +++ b/src/pages/[platform]/build-a-backend/auth/concepts/user-attributes/index.mdx @@ -63,6 +63,103 @@ export const auth = defineAuth({ User attributes are defined as [Cognito Standard Attributes](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes). Attributes can be configured to be _required_ for user sign-up in addition to whether the values are _mutable_. When configuring your resource to allow your users to login with `email`, an email must be specified for user sign-up and cannot be changed later. However additional attributes can be configured to be optional, and mutable after sign-up. +```ts title="amplify/auth/resource.ts" +import { defineAuth } from "@aws-amplify/backend"; + +export const auth = defineAuth({ + loginWith: { + email: true, + }, + userAttributes: { + // Maps to Cognito standard attribute 'address' + address: { + mutable: true, + required: true, + }, + // Maps to Cognito standard attribute 'birthdate' + birthdate: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'email' + email: { + mutable: true, + required: true, + }, + // Maps to Cognito standard attribute 'family_name' + familyName: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'gender' + gender: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'given_name' + givenName: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'locale' + locale: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'middle_name' + middleName: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'name' + fullname: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'nickname' + nickname: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'phone_number' + phoneNumber: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'picture' + profilePicture: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'preferred_username' + preferredUsername: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'profile' + profilePage: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'zoneinfo' + timezone: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'updated_at' + lastUpdateTime: { + mutable: true, + required: false, + }, + // Maps to Cognito standard attribute 'website' + website: { + mutable: true, + required: false, + }, + }, +}); +``` + ## Custom attributes In addition to the provided standard attributes, you can configure [Custom Attributes](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-custom-attributes). These are attributes that are typically unique to your use case, such as a tenant ID or a user's display name. Custom attributes are identified by the `custom:` prefix: