DjangoでCognitoの利用 ~準備~

boto3のインストール

pipを利用している場合は、boto3を以下のコマンドでインストールする。

pip install boto3

requirements.txt を用いている場合は、下記を追加する。

boto3==1.24

クライアントインスタンスの作成

下記コードにて、クライアントインスタンスが生成される。

import boto3

cognito = boto3.client([COGNITO_IDP] , region_name=[REGION],
            aws_access_key_id = [AWS_ACCESS_KEY_ID, aws_secret_access_key = [AWS_SECRET_ACCESS_KEY]);

ハッシュ値の作成

リクエストの際にハッシュ値が必要となる場合があるため、作成をする必要がある。

ハッシュ値を作成するコードは、awsのサイトに記載があるので、それをそのまま使用する。

以下はコードの抜粋。

import hmac, hashlib, base64

message = bytes([ユーザー名]+[APP_CLIENT_ID],'utf-8');
key = bytes([APP_CLIENT_SECRET],'utf-8');
hashCode = base64.b64encode(hmac.new(key, message, digestmod=hashlib.sha256).digest()).decode();

参考

CognitoIdentityProvider — Boto3 Docs 1.26.22 documentation (amazonaws.com)

Amazon Cognito の「クライアントのシークレットのハッシュを検証できません」というエラーを解決する