Need to configure your backend?See Build a Backend →
サインアップ
Amplifyは、Amplify Authなどのバックエンドリソースと対話できるクライアントライブラリを提供します。
まず、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 | メール |
email と phone | メール |
ユーザーから確認コードを受け取った後、サインアップを確認できます:
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()) );}