Looking for how to use this in your app?See Frontend Libraries →
パスワードを管理する
Amplify Authは、ユーザーがパスワードを変更したり、忘れたパスワードを回復したりするための安全な方法を提供します。
パスワードのデフォルト設定を理解する
デフォルトでは、ユーザーは電話またはメールを使用してパスワードを忘れた場合にアカウントへのアクセスを回復できます。次の表は、ログインオプションとしてphoneまたはemailが使用されている場合に使用されるデフォルトアカウント回復方法です。
| ログインオプション | ユーザーアカウント検証チャネル |
|---|---|
phone | 電話番号 |
email | メール |
email と phone | メール |
パスワードをリセットする
ユーザーのパスワードをリセットするには、resetPassword APIを使用します。これにより、ユーザーの設定に基づいて宛先(メールやSMSなど)にリセットコードが送信されます。
Amplify.Auth.resetPassword( "username", result -> Log.i("AuthQuickstart", result.toString()), error -> Log.e("AuthQuickstart", error.toString()));Amplify.Auth.resetPassword("username", { Log.i("AuthQuickstart", "Password reset OK: $it") }, { Log.e("AuthQuickstart", "Password reset failed", it) })try { val result = Amplify.Auth.resetPassword("username") Log.i("AuthQuickstart", "Password reset OK: $result")} catch (error: AuthException) { Log.e("AuthQuickstart", "Password reset failed", error)}RxAmplify.Auth.resetPassword("username") .subscribe( result -> Log.i("AuthQuickstart", result.toString()), error -> Log.e("AuthQuickstart", error.toString()) );パスワードリセットプロセスを完了するには、ユーザーが受け取ったコードと設定したい新しいパスワードを使用してconfirmResetPassword APIを呼び出します。
Amplify.Auth.confirmResetPassword( "Username", "NewPassword123", "confirmation code you received", () -> Log.i("AuthQuickstart", "New password confirmed"), error -> Log.e("AuthQuickstart", error.toString()));Amplify.Auth.confirmResetPassword("Username", "NewPassword123", "confirmation code", { Log.i("AuthQuickstart", "New password confirmed") }, { Log.e("AuthQuickstart", "Failed to confirm password reset", it) })try { Amplify.Auth.confirmResetPassword("Username", "NewPassword123", "code you received") Log.i("AuthQuickstart", "New password confirmed")} catch (error: AuthException) { Log.e("AuthQuickstart", "Failed to confirm password reset", error)}RxAmplify.Auth.confirmResetPassword("Username","NewPassword123", "confirmation code") .subscribe( () -> Log.i("AuthQuickstart", "New password confirmed"), error -> Log.e("AuthQuickstart", error.toString()) );パスワードを更新する
updatePassword APIを使用して、サインインしたユーザーのパスワードを更新できます。
Amplify.Auth.updatePassword( "existingPassword", "newPassword", () -> Log.i("AuthQuickstart", "Updated password successfully"), error -> Log.e("AuthQuickstart", error.toString()));Amplify.Auth.updatePassword("existingPassword", "newPassword", { Log.i("AuthQuickstart", "Updated password successfully") }, { Log.e("AuthQuickstart", "Password update failed", it) })try { Amplify.Auth.updatePassword("existingPassword", "newPassword") Log.i("AuthQuickstart", "Updated password successfully")} catch (error: AuthException) { Log.e("AuthQuickstart", "Password update failed", error)}RxAmplify.Auth.updatePassword("existingPassword", "newPassword") .subscribe( () -> Log.i("AuthQuickstart", "Updated password successfully"), error -> Log.e("AuthQuickstart", error.toString()) );デフォルトユーザーアカウント検証チャネルをオーバーライドする
認証リソースで使用されるチャネルを変更するには、常に次の設定をオーバーライドできます。
amplify/auth/resource.ts
import { defineAuth } from '@aws-amplify/backend';
export const auth = defineAuth({ loginWith: { email: true }, accountRecovery: 'EMAIL_ONLY'});デフォルトパスワードポリシーをオーバーライドする
デフォルトでは、パスワードポリシーは以下に設定されています:
MinLength: 8文字requireLowercase: truerequireUppercase: truerequireNumbers: truerequireSymbols: truetempPasswordValidity: 3日
基本となるcfnUserPoolリソースを変更することで、認証リソースで受け入れられるパスワード形式をカスタマイズできます:
amplify/backend.ts
import { defineBackend } from '@aws-amplify/backend';import { auth } from './auth/resource';
const backend = defineBackend({ auth,});// extract L1 CfnUserPool resourcesconst { cfnUserPool } = backend.auth.resources.cfnResources;// modify cfnUserPool policies directlycfnUserPool.policies = { passwordPolicy: { minimumLength: 32, requireLowercase: true, requireNumbers: true, requireSymbols: true, requireUppercase: true, temporaryPasswordValidityDays: 20, },};