4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Amazon Cognitoの認証前トリガーを用いたユーザーの論理削除の実装

Last updated at Posted at 2019-09-06

やりたいこと

「論理削除済みのユーザーをログインさせない」処理の実装

実装

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を選ぶ
キャプチャ.PNG
一番下の保存ボタンをクリック

結果

実際にログインしようとしてみるとこうなる
キャプチャ.PNG

####注意事項
正常系の場合はeventを返さないとなんかエラーになる

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?