基本的にはカスタム認証フローを使って、匿名ユーザには無条件でトークンを払い出すようにする。
準備
Define Auth Challengeに当たるLambdaを作成する- userStatusが
FORCE_CHANGE_PASSWORDの場合に認証突破するような設定にする(ここのコードTODO) - Cognito カスタム認証フローの認証チャレンジの定義に上記Lambdaを紐づけておく
- terraformの
lambda_configで設定する場合は、lambda側にpermissionを設定しておく必要がある(マネコンから手で作ると勝手にパーミッションが作られている)
- terraformの
実行
- uuidを生成して端末のストレージに保持する。(これを仮に「デバイスID」と呼ぶ
- uuidを使ってAdminCreateUserを実行する。
- 続いて
CUSTOM_AUTHフローでcognitoにログインする - 無事lambdaが起動してログイン成功、トークンが払い出される。
Firebase Authenticationでの匿名ログインならもっと簡単 Firebaseはいいぞ