cognitoのユーザプールでメール認証を無しにしてみた。サンプル・プログラムで、毎度メール認証するのが面倒だったので…。
標準機能では存在しなかったけど、サインアップ(ユーザー登録)時にlambda関数(認証処理)を実行すれば出来た。
参考URL
https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/user-pool-lambda-pre-sign-up.html
https://qiita.com/_mogaming/items/25d84386fbf406c44431
1, lambdaで自動認証のコードを書く
1 2 3 4 5 6 |
exports.handler = function(event, context, callback) { if (event.triggerSource == 'PreSignUp_SignUp') { event.response.autoConfirmUser = true; } callback(null, event); } |
2, メール認証無しのユーザープールを作成。もし間違ったら、削除して作り直し(割と変更できない項目が多い)
こんか感じ。もし間違ったら、削除して作り直し(割と変更できない項目が多い)
3, アプリクライアントを作成。
※「クライアントシークレットを生成」のチェックを外すのを忘れずに!
4, DOS窓からユーザー作成。”UserConfirmed”: true(認証済み)の状態で作成される
1 2 3 4 5 |
aws cognito-idp sign-up --client-id ユーザープールのアプリクライアントID --username oreore --password oreore { "UserConfirmed": true, "UserSub": "適当な乱数が入っている" } |
5, USERNAMEとPASSWORDだけでログイン出来る事を確認する。
1 2 3 4 5 6 7 8 9 10 11 |
aws cognito-idp admin-initiate-auth --user-pool-id ユーザープールの管理画面に書いてあるID --client-id ユーザープールのアプリクライアントID --auth-flow ADMIN_NO_SRP_AUTH --auth-parameters "USERNAME=oreore,PASSWORD=oreore" { "ChallengeParameters": {}, "AuthenticationResult": { "AccessToken": "長すぎ!千文字くらいある!", "ExpiresIn": 3600, "TokenType": "Bearer", "RefreshToken": "長すぎ!千文字くらいある!", "IdToken": "長すぎ!千文字くらいある!" } } |