Amazon Cognito とは
ウェブアプリケーションやモバイルアプリケーションの認証、許可、ユーザー管理をしてくれる便利なサービス。
GoogleやTwitterなどのサードパーティとも連携できる優れもの。
エラーレスポンスの形式
基本的に以下の形式で与えられる。
{
code: "NotAuthorizedException",
name: "NotAuthorizedException",
message: "Incorrect username or password."
}
key | value |
---|---|
code | 例外コード |
name | 例外名 |
message | 例外の詳細 |
例外一覧
主にSignUp, Verify, SignIn周りの例外をまとめた。
General(どのタイミングでも発生し得る)
InternalErrorException
Cognito内部での例外。余程のことが無い限り発生しないと思われる。
InvalidLambdaResponseException
Cognitoで指定できるトリガーLambda関数のレスポンスが無効である。
UnexpectedLambdaException
Cognitoで指定できるトリガーLambda関数内部で例外が発生。
ResourceNotFoundException
ResourceのID等の指定を間違っている可能性がある。そもそも作ってない説もある。
TooManyRequestsException
文字通り、requestを飛ばしすぎによる例外。
SignUp関連
CodeDeliveryFailureException
検証コードの配信に失敗した時に起こる。
InvalidEmailRoleAccessPolicyException
メールアドレス周りのRole関連による例外。
InvalidSmsRoleAccessPolicyException
これも権限周り。検証コードを発行する権限が無い。
InvalidSmsRoleTrustRelationException
これも権限周り。Roleの不一致(IDPoolやサードパーティ関連)
InvalidParameterException
必要なユーザー属性が足りなかったりした時に発生。
InvalidPasswordException
Cognito側で設定したパスワード要件を満たしていない時に発生する。
追記)パスワードの長さが足りない場合はInvalidParameterExceptionの方に引っかかるっぽい
SignIn関連
NotAuthorizedException
ユーザー認証に失敗した時。ユーザー名orパスワードが間違っています等のメッセージがいい例。
UserLambdaValidationException
Cognito側でユーザーの自己サインインを許可していない時などに起こる。
追記) ↓はSignUpの方です。
UsernameExistsException
既にユーザー名が使われている時に起こる。
UserNotConfirmedException
検証コードを入力する作業が完了していないユーザーがサインインしようとした時とか。これをキャッチして検証ページに飛ばすのが普通なのかな?
PasswordResetException
パスワードのリセットが必要な時に発生する例外。
Verify関連
CodeMismatchException
入力された検証コードが間違っている時に発生。
LimitExceededException
ログイン試行やコード検証試行の回数の上限に達した時に発生。
ExpiredCodeException
検証コードが期限切れになっている時に発生する。
UserNotFoundException
検証しようとしたメールアドレスが存在しない場合に発生する。
終わりに
Amazon Cognitoで発生する例外についてまとめました。
全てを網羅できていませんが、必要そうなものは大体ピックアップしました。
これ違うだろっていうのがあれば修正リクエストお願いします。
こちらでも気付き次第修正します。