Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.

Choose your framework/language

Gen1 DocsLegacy

Page updated Mar 26, 2026

ユーザー属性

Amplify Auth はユーザー プロフィール情報をユーザー属性に保存します。サインインのデフォルト方法を使用すると、Amplify Auth は自動的にサインインに必要な email または phoneNumber 属性を構成します。

ユーザー プロフィールを認証リソースの loginWith プロパティで指定されたデフォルトの email または phoneNumber 属性を超えて拡張するには、userAttributes プロパティで属性を構成できます:

警告: 認証リソースを作成した後、属性を必須と不要の間で切り替えることはできません。

amplify/auth/resource.ts
import { defineAuth } from "@aws-amplify/backend"
export const auth = defineAuth({
loginWith: {
// this configures a required "email" attribute
email: true,
},
userAttributes: {
// specify a "birthdate" attribute
birthdate: {
mutable: true,
required: false,
}
},
})

標準属性

ユーザー属性は Cognito 標準属性 として定義されます。属性は値が mutable であるかどうかに加えて、ユーザー サインアップに required になるように構成できます。リソースを email でログインするようにユーザーに許可するように構成する場合、ユーザー サインアップ時にメールを指定する必要があり、後で変更することはできません。ただし、追加の属性はオプションで、サインアップ後に変更可能なように構成できます。

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,
},
},
});

カスタム属性

提供される標準属性に加えて、カスタム属性 を構成できます。これらは、テナント ID やユーザーの表示名など、ユースケースに固有の属性です。カスタム属性は custom: プレフィックスで識別されます:

amplify/auth/resource.ts
import { defineAuth } from "@aws-amplify/backend"
export const auth = defineAuth({
loginWith: {
// this configures a required "email" attribute
email: true,
},
userAttributes: {
"custom:display_name": {
dataType: "String",
mutable: true,
maxLen: 16,
minLen: 1,
},
"custom:favorite_number": {
dataType: "Number",
mutable: true,
min: 1,
max: 100,
},
"custom:is_beta_user": {
dataType: "Boolean",
mutable: true,
},
"custom:started_free_trial": {
dataType: "DateTime",
mutable: true,
},
},
})

標準属性とは異なり、カスタム属性はサインアップに必須にすることはできませんが、pre sign-up トリガーを使用してサインアップ時にユーザー属性を検証することで 何らかの値を必須にするようにコード化できます。

カスタム属性は特定のデータ型で構成することもできます。以下のデータ型がサポートされています:

  • String
  • Number
  • Boolean
  • DateTime

上記のスニペットに示されているように、StringNumber には最小値と最大値の制約を割り当てることができます。これは簡単な検証を基盤となるサービスに委譲するのに役立ちますが、正規表現に照合するなどの複雑な検証には及びません。

次のステップ