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

Page updated Mar 26, 2026

サインアップ

Amplifyは、Amplify Authなどのバックエンドリソースと対話できるクライアントライブラリを提供します。

Amplify Authをフロントエンドアプリケーションで最も簡単に始める方法は、Authenticatorコンポーネントを使用することです。このコンポーネントはカスタマイズ可能なUIと完全な認証フローを提供します。

まず、signUp() APIを使用してバックエンドに新しいユーザーを作成できます:

ArrayList<AuthUserAttribute> attributes = new ArrayList<>();
attributes.add(new AuthUserAttribute(AuthUserAttributeKey.email(), "my@email.com"));
attributes.add(new AuthUserAttribute(AuthUserAttributeKey.phoneNumber(), "+15551234567"));
Amplify.Auth.signUp(
"username",
"Password123",
AuthSignUpOptions.builder().userAttributes(attributes).build(),
result -> Log.i("AuthQuickstart", result.toString()),
error -> Log.e("AuthQuickstart", error.toString())
);
val attrs = mapOf(
AuthUserAttributeKey.email() to "my@email.com",
AuthUserAttributeKey.phoneNumber() to "+15551234567"
)
val options = AuthSignUpOptions.builder()
.userAttributes(attrs.map { AuthUserAttribute(it.key, it.value) })
.build()
Amplify.Auth.signUp("username", "Password123", options,
{ Log.i("AuthQuickstart", "Sign up result = $it") },
{ Log.e("AuthQuickstart", "Sign up failed", it) }
)
val attrs = mapOf(
AuthUserAttributeKey.email() to "my@email.com",
AuthUserAttributeKey.phoneNumber() to "+15551234567"
)
val options = AuthSignUpOptions.builder()
.userAttributes(attrs.map { AuthUserAttribute(it.key, it.value) })
.build()
try {
val result = Amplify.Auth.signUp("username", "Password123", options)
Log.i("AuthQuickstart", "Sign up OK: $result")
} catch (error: AuthException) {
Log.e("AuthQuickstart", "Sign up failed", error)
}
ArrayList<AuthUserAttribute> attributes = new ArrayList<>();
attributes.add(new AuthUserAttribute(AuthUserAttributeKey.email(), "my@email.com"));
attributes.add(new AuthUserAttribute(AuthUserAttributeKey.phoneNumber(), "+15551234567"));
RxAmplify.Auth.signUp(
"username",
"Password123",
AuthSignUpOptions.builder().userAttributes(attributes).build())
.subscribe(
result -> Log.i("AuthQuickstart", result.toString()),
error -> Log.e("AuthQuickstart", error.toString())
);

signUp APIレスポンスには nextStep プロパティが含まれており、これを使用して追加のアクションが必要かどうかを判定できます。以下のネクストステップが返される可能性があります:

ネクストステップ説明
CONFIRM_SIGN_UP_STEPサインアップをユーザーからコードを収集して confirmSignUp を呼び出すことで確認する必要があります。
DONEサインアッププロセスが完全に完了しました。

サインアップの確認

デフォルトでは、サインアップしたすべてのユーザーは、メールアドレスまたは電話番号に送信された確認コードで確認するまで、未確認のステータスのままです。以下は、loginWith オプションとして phone または email が使用される場合に使用されるデフォルトの検証方法です。

ログインオプションユーザーアカウント検証チャネル
phone電話番号
emailメール
emailphoneメール

ユーザーから確認コードを受け取った後、サインアップを確認できます:

Amplify.Auth.confirmSignUp(
"username",
"the code you received via email",
result -> Log.i("AuthQuickstart", result.isSignUpComplete() ? "Confirm signUp succeeded" : "Confirm sign up not complete"),
error -> Log.e("AuthQuickstart", error.toString())
);
Amplify.Auth.confirmSignUp(
"username", "the code you received via email",
{ result ->
if (result.isSignUpComplete) {
Log.i("AuthQuickstart", "Confirm signUp succeeded")
} else {
Log.i("AuthQuickstart","Confirm sign up not complete")
}
},
{ Log.e("AuthQuickstart", "Failed to confirm sign up", it) }
)
try {
val code = "code you received via email"
val result = Amplify.Auth.confirmSignUp("username", code)
if (result.isSignUpComplete) {
Log.i("AuthQuickstart", "Signup confirmed")
} else {
Log.i("AuthQuickstart", "Signup confirmation not yet complete")
}
} catch (error: AuthException) {
Log.e("AuthQuickstart", "Failed to confirm signup", error)
}
RxAmplify.Auth.confirmSignUp("username", "the code you received via email")
.subscribe(
result -> Log.i("AuthQuickstart", result.isSignUpComplete() ? "Confirm signUp succeeded" : "Confirm sign up not complete"),
error -> Log.e("AuthQuickstart", error.toString())
);

パスワードレス方式でのサインアップ

アプリケーションのユーザーはパスワードレス方式を使用してサインアップすることもできます。詳細については、パスワードレスのコンセプトページをご覧ください。

SMS OTP

// 電話番号を使用してサインアップします
ArrayList<AuthUserAttribute> attributes = new ArrayList<>();
attributes.add(new AuthUserAttribute(AuthUserAttributeKey.phoneNumber(), "+15551234567"));
Amplify.Auth.signUp(
"hello@example.com",
null,
AuthSignUpOptions.builder().userAttributes(attributes).build(),
result -> {
if (result.isSignUpComplete()) {
Log.i("AuthQuickstart", "Sign up is complete");
} else if (result.getNextStep().getSignUpStep() == AuthSignUpStep.CONFIRM_SIGN_UP_STEP) {
Log.i("AuthQuickstart", "Code Deliver Medium: " +
result.getNextStep().getCodeDeliveryDetails().getDeliveryMedium());
Log.i("AuthQuickstart", "Code Deliver Destination: " +
result.getNextStep().getCodeDeliveryDetails().getDestination());
}
},
error -> Log.e("AuthQuickstart", error.toString())
);
// 受け取ったOTPでサインアップを確認します
Amplify.Auth.confirmSignUp(
"hello@example.com",
"123456",
result -> {
if (result.isSignUpComplete()) {
Log.i("AuthQuickstart", "Sign up is complete");
}
},
error -> Log.e("AuthQuickstart", error.toString())
);
// 電話番号を使用してサインアップします
val attributes = listOf(
AuthUserAttribute(AuthUserAttributeKey.phoneNumber(), "+15555551234")
)
val options =
AuthSignUpOptions
.builder()
.userAttributes(attributes)
.build()
Amplify.Auth.signUp(
"hello@example.com",
null,
options,
{ result ->
if (result.isSignUpComplete) {
Log.i("AuthQuickstart", "Sign up is complete")
} else if (result.nextStep.signUpStep == AuthSignUpStep.CONFIRM_SIGN_UP_STEP) {
Log.i("AuthQuickstart", "Code Deliver Medium: " +
"${result.nextStep.codeDeliveryDetails?.deliveryMedium}")
Log.i("AuthQuickstart", "Code Deliver Destination: " +
"${result.nextStep.codeDeliveryDetails?.destination}")
}
},
{ Log.e("AuthQuickstart", "Failed to sign up", it) }
)
// 受け取ったOTPでサインアップを確認します
Amplify.Auth.confirmSignUp(
"hello@example.com",
"123456",
{ result ->
if (result.nextStep.signUpStep == AuthSignUpStep.DONE) {
Log.i("AuthQuickstart", "Sign up is complete")
}
},
{ Log.e("AuthQuickstart", "Failed to sign up", it) }
)
// 電話番号を使用してサインアップします
val attributes = listOf(
AuthUserAttribute(AuthUserAttributeKey.phoneNumber(), "+15555551234")
)
val options =
AuthSignUpOptions
.builder()
.userAttributes(attributes)
.build()
var result = Amplify.Auth.signUp("hello@example.com", null, options)
if (result.isSignUpComplete) {
Log.i("AuthQuickstart", "Sign up is complete")
} else if (result.nextStep.signUpStep == AuthSignUpStep.CONFIRM_SIGN_UP_STEP) {
Log.i("AuthQuickstart", "Code Deliver Medium: " +
"${result.nextStep.codeDeliveryDetails?.deliveryMedium}")
Log.i("AuthQuickstart", "Code Deliver Destination: " +
"${result.nextStep.codeDeliveryDetails?.destination}")
}
// 受け取ったOTPでサインアップを確認します
result = Amplify.Auth.confirmSignUp(
"hello@example.com",
"123456"
)
if (result.nextStep.signUpStep == AuthSignUpStep.DONE) {
Log.i("AuthQuickstart", "Sign up is complete")
}
// 電話番号を使用してサインアップします
ArrayList<AuthUserAttribute> attributes = new ArrayList<>();
attributes.add(new AuthUserAttribute(AuthUserAttributeKey.phoneNumber(), "+15551234567"));
RxAmplify.Auth.signUp(
"hello@example.com",
null,
AuthSignUpOptions.builder().userAttributes(attributes).build()
)
.subscribe(
result -> {
if (result.isSignUpComplete()) {
Log.i("AuthQuickstart", "Sign up is complete");
} else if (result.getNextStep().getSignUpStep() == AuthSignUpStep.CONFIRM_SIGN_UP_STEP) {
Log.i("AuthQuickstart", "Code Deliver Medium: " +
result.getNextStep().getCodeDeliveryDetails().getDeliveryMedium());
Log.i("AuthQuickstart", "Code Deliver Destination: " +
result.getNextStep().getCodeDeliveryDetails().getDestination());
}
},
error -> Log.e("AuthQuickstart", error.toString())
);
// 受け取ったOTPでサインアップを確認します
RxAmplify.Auth.confirmSignUp(
"hello@example.com",
"123456"
)
.subscribe(
result -> {
if (result.isSignUpComplete()) {
Log.i("AuthQuickstart", "Sign up is complete");
}
},
error -> Log.e("AuthQuickstart", error.toString())
);

メールOTP

// メールアドレスを使用してサインアップします
ArrayList<AuthUserAttribute> attributes = new ArrayList<>();
attributes.add(new AuthUserAttribute(AuthUserAttributeKey.email(), "hello@example.com"));
Amplify.Auth.signUp(
"hello@example.com",
null,
AuthSignUpOptions.builder().userAttributes(attributes).build(),
result -> {
if (result.isSignUpComplete()) {
Log.i("AuthQuickstart", "Sign up is complete");
} else if (result.getNextStep().getSignUpStep() == AuthSignUpStep.CONFIRM_SIGN_UP_STEP) {
Log.i("AuthQuickstart", "Code Deliver Medium: " +
result.getNextStep().getCodeDeliveryDetails().getDeliveryMedium());
Log.i("AuthQuickstart", "Code Deliver Destination: " +
result.getNextStep().getCodeDeliveryDetails().getDestination());
}
},
error -> Log.e("AuthQuickstart", error.toString())
);
// 受け取ったOTPでサインアップを確認します
Amplify.Auth.confirmSignUp(
"hello@example.com",
"123456",
result -> {
if (result.isSignUpComplete()) {
Log.i("AuthQuickstart", "Sign up is complete");
}
},
error -> Log.e("AuthQuickstart", error.toString())
);
// メールアドレスを使用してサインアップします
val attributes = listOf(
AuthUserAttribute(AuthUserAttributeKey.email(), "my@email.com")
)
val options =
AuthSignUpOptions
.builder()
.userAttributes(attributes)
.build()
Amplify.Auth.signUp(
"hello@example.com",
null,
options,
{ result ->
if (result.isSignUpComplete) {
Log.i("AuthQuickstart", "Sign up is complete")
} else if (result.nextStep.signUpStep == AuthSignUpStep.CONFIRM_SIGN_UP_STEP) {
Log.i("AuthQuickstart", "Code Deliver Medium: " +
"${result.nextStep.codeDeliveryDetails?.deliveryMedium}")
Log.i("AuthQuickstart", "Code Deliver Destination: " +
"${result.nextStep.codeDeliveryDetails?.destination}")
}
},
{ Log.e("AuthQuickstart", "Failed to sign up", it) }
)
// 受け取ったOTPでサインアップを確認します
Amplify.Auth.confirmSignUp(
"hello@example.com",
"123456",
{ result ->
if (result.nextStep.signUpStep == AuthSignUpStep.DONE) {
Log.i("AuthQuickstart", "Sign up is complete")
}
},
{ Log.e("AuthQuickstart", "Failed to sign up", it) }
)
// メールアドレスを使用してサインアップします
val attributes = listOf(
AuthUserAttribute(AuthUserAttributeKey.email(), "my@email.com")
)
val options =
AuthSignUpOptions
.builder()
.userAttributes(attributes)
.build()
var result = Amplify.Auth.signUp("hello@example.com", null, options)
if (result.isSignUpComplete) {
Log.i("AuthQuickstart", "Sign up is complete")
} else if (result.nextStep.signUpStep == AuthSignUpStep.CONFIRM_SIGN_UP_STEP) {
Log.i("AuthQuickstart", "Code Deliver Medium: " +
"${result.nextStep.codeDeliveryDetails?.deliveryMedium}")
Log.i("AuthQuickstart", "Code Deliver Destination: " +
"${result.nextStep.codeDeliveryDetails?.destination}")
}
// 受け取ったOTPでサインアップを確認します
result = Amplify.Auth.confirmSignUp(
"hello@example.com",
"123456"
)
if (result.nextStep.signUpStep == AuthSignUpStep.DONE) {
Log.i("AuthQuickstart", "Sign up is complete")
}
// メールアドレスを使用してサインアップします
ArrayList<AuthUserAttribute> attributes = new ArrayList<>();
attributes.add(new AuthUserAttribute(AuthUserAttributeKey.email(), "my@email.com"));
RxAmplify.Auth.signUp(
"hello@example.com",
null,
AuthSignUpOptions.builder().userAttributes(attributes).build()
)
.subscribe(
result -> {
if (result.isSignUpComplete()) {
Log.i("AuthQuickstart", "Sign up is complete");
} else if (result.getNextStep().getSignUpStep() == AuthSignUpStep.CONFIRM_SIGN_UP_STEP) {
Log.i("AuthQuickstart", "Code Deliver Medium: " +
result.getNextStep().getCodeDeliveryDetails().getDeliveryMedium());
Log.i("AuthQuickstart", "Code Deliver Destination: " +
result.getNextStep().getCodeDeliveryDetails().getDestination());
}
},
error -> Log.e("AuthQuickstart", error.toString())
);
// 受け取ったOTPでサインアップを確認します
RxAmplify.Auth.confirmSignUp(
"hello@example.com",
"123456"
)
.subscribe(
result -> {
if (result.isSignUpComplete()) {
Log.i("AuthQuickstart", "Sign up is complete");
}
},
error -> Log.e("AuthQuickstart", error.toString())
);

自動サインイン

private void confirmSignUp(String username, String confirmationCode) {
// OTPでサインアップを確認してから自動サインインします
Amplify.Auth.confirmSignUp(
username,
confirmationCode,
result -> {
if (result.getNextStep().getSignUpStep() == AuthSignUpStep.COMPLETE_AUTO_SIGN_IN) {
Log.i("AuthQuickstart", "Sign up is complete, auto sign in");
autoSignIn();
}
},
error -> Log.e("AuthQuickstart", error.toString())
);
}
private void autoSignIn() {
Amplify.Auth.autoSignIn(
result -> Log.i("AuthQuickstart", "Sign in is complete"),
error -> Log.e("AuthQuickstart", error.toString())
);
}
fun confirmSignUp(username: String, confirmationCode: String) {
// OTPでサインアップを確認します
Amplify.Auth.confirmSignUp(
username,
confirmationCode,
{ signUpResult ->
if (signUpResult.nextStep.signUpStep == AuthSignUpStep.COMPLETE_AUTO_SIGN_IN) {
Log.i("AuthQuickstart", "Sign up is complete, auto sign in")
autoSignIn()
}
},
{ Log.e("AuthQuickstart", "Failed to sign up", it) }
)
}
fun autoSignIn() {
Amplify.Auth.autoSignIn(
{ signInResult ->
Log.i("AuthQuickstart", "Sign in is complete")
},
{ Log.e("AuthQuickstart", "Failed to sign in", it) }
)
}
suspend fun confirmSignUp(username: String, confirmationCode: String) {
// OTPでサインアップを確認してから自動サインインします
val result = Amplify.Auth.confirmSignUp(
"hello@example.com",
"123456"
)
if (result.nextStep.signUpStep == AuthSignUpStep.COMPLETE_AUTO_SIGN_IN) {
Log.i("AuthQuickstart", "Sign up is complete, auto sign in")
autoSignIn()
}
}
suspend fun autoSignIn() {
val result = Amplify.Auth.autoSignIn()
if (result.isSignedIn) {
Log.i("AuthQuickstart", "Sign in is complete")
} else {
Log.e("AuthQuickstart", "Sign in did not complete $result")
}
}
private void confirmSignUp(String username, String confirmationCode) {
// OTPでサインアップを確認してから自動サインインします
RxAmplify.Auth.confirmSignUp(
username,
confirmationCode
)
.subscribe(
result -> {
if (result.getNextStep().getSignUpStep() == AuthSignUpStep.COMPLETE_AUTO_SIGN_IN) {
Log.i("AuthQuickstart", "Sign up is complete, auto sign in");
autoSignIn();
}
},
error -> Log.e("AuthQuickstart", error.toString())
);
}
private void autoSignIn() {
RxAmplify.Auth.autoSignIn()
.subscribe(
result -> Log.i("AuthQuickstart", "Sign in is complete" + result.toString()),
error -> Log.e("AuthQuickstart", error.toString())
);
}