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

Page updated Oct 15, 2024

パスワードを管理する

Amplify Authは、ユーザーがパスワードを変更したり、忘れたパスワードを回復したりするための安全な方法を提供します。

パスワードのデフォルト設定を理解する

デフォルトでは、ユーザーは電話またはメールを使用してパスワードを忘れた場合にアカウントへのアクセスを回復できます。次の表は、ログインオプションとしてphoneまたはemailが使用されている場合に使用されるデフォルトアカウント回復方法です。

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

パスワードをリセットする

ユーザーのパスワードをリセットするには、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: true
  • requireUppercase: true
  • requireNumbers: true
  • requireSymbols: true
  • tempPasswordValidity: 3日

基本となるcfnUserPoolリソースを変更することで、認証リソースで受け入れられるパスワード形式をカスタマイズできます:

amplify/backend.ts
import { defineBackend } from '@aws-amplify/backend';
import { auth } from './auth/resource';
const backend = defineBackend({
auth,
});
// extract L1 CfnUserPool resources
const { cfnUserPool } = backend.auth.resources.cfnResources;
// modify cfnUserPool policies directly
cfnUserPool.policies = {
passwordPolicy: {
minimumLength: 32,
requireLowercase: true,
requireNumbers: true,
requireSymbols: true,
requireUppercase: true,
temporaryPasswordValidityDays: 20,
},
};