やりたいこと
「論理削除済みのユーザーをログインさせない」処理の実装
実装
Cognito ユーザープールの標準機能では論理削除というものが(多分)存在しない
そのためカスタム属性 [isDeleted]を追加して論理削除済みか否かを管理しようと思う
また、Cognitoのログインシーケンスではいくつかのタイミングで「トリガー」を挟み込むことが出来るので、今回はそのトリガーのうち「認証前トリガー」を用いて「論理削除済みのユーザーをログインさせない」処理を実装する
def lambda_handler(event, context):
print(event); #cloud watchに出力用
isDeleted = event['request']['userAttributes']['custom:isDeleted'] #0:未削除, 1:削除済み
if isDeleted == '1':
raise Exception("'This user has already been deleted.'")
return event
Lambdaができたらユーザープールと連携
サイドメニューから「トリガー」へ
認証前のドロップダウンリストから作ったLambdaを選ぶ
一番下の保存ボタンをクリック
結果
####注意事項
正常系の場合はeventを返さないとなんかエラーになる