【AWS】【Swift】Cognitoのユーザ情報を取得する方法


iOSアプリでCognitoのサインイン後にユーザ情報を取得する方法をまとめます。

usernameの取得

これが1番苦労しました。わずか1行・・・。

AWSMobileClient.default().username

標準属性の取得

今回は、標準属性としてemailのみを指定したため、subemailemail_verifiedの3つを取得します。
ユーザプール作成時に標準属性として指定すれば、genderbirthdateなども同じように取得できます。

AWSMobileClient.default().getUserAttributes { (attributes, error) in
     if(error != nil){
        print("ERROR: \(error)")
     }else{
        if let attributesDict = attributes{
           print(attributesDict["sub"])
           print(attributesDict["email"])
           print(attributesDict["email_verified"])
        }
     }
}

カスタム属性の取得

Cognitoの標準属性以外を属性として使う場合、カスタム属性として追加することができます。
例えば、teamをカスタム属性として設定した場合、custom:teamとすることで取得できます。

AWSMobileClient.default().getUserAttributes { (attributes, error) in
     if(error != nil){
        print("ERROR: \(error)")
     }else{
        if let attributesDict = attributes{
           print(attributesDict["custom:team"])
        }
     }
}

参考にしたサイト