https://github.com/capless/warrant の中身を理解したいので、部分的に写経していく
読み解いた内容は現在 Cognito の USER_SRP_AUTH を Python で理解したい に書いています。
- .env ファイルの作成
$ cp .env.sample .env
$ vi .env
中身は以下の通りです。
client_id=xxx
userpool_id=xxxx
username=xxxx
password= xxxx
- ライブラリのインストール
$ pip install pipenv
$ pipenv install
$ pipenv shell
外部ライブラリは boto3 だけですが、 .env ファイルを読み込むためにも Pipenv を使っています。
- ログインの実行
$ python main.py
ログインが実行され、標準出力に各種トークンが出力されます。
- .env.sample
- main.py
- srp.py
aws_srp をかいつまんで写経しています。
CognitoSRP クラスの authenticate_user メソッドで、ログインができます。
authenticate_user() 関数と main() 関数を定義しています。
main() 関数は CognitoSRP クラスの authenticate_user メソッドを呼び出して一発でログインします。
authenticate_user() 関数は、authenticate_user メソッドを各ステップに分けて実行しているだけです。
備忘録的に認証フローの流れをわかりやすく書き下しているだけであり、中身の処理は全く同じです。