aws-sdk-go를 통해 Cognito에서 User의sub를 획득하는 방법
날과 씨
프레젠테이션 환경에서 DynamoDB의 데이터를 정기적으로 삭제하고 싶지만, 표 자체가 AppSync에서 관리하기 때문에'다른 도구를 사용하여 DynamoDB 테이블을 정기적으로 다시 만들고 싶지 않다'.
테이블에서 Cognito의sub을 독특한 값으로 사용하기 때문에 대상 환경과 관련된 사용자 일람을 얻고 이 사용자와 관련된 데이터를 삭제하려고 합니다.
이에 따라 코그니토의 특정 UserPoodId와 연관된 sub 일람을 얻는 방법을 조사해 필기를 진행했다.
샘플 코드가 yu-croco/GolangCognitoSample에 실렸으니 자유롭게 사용하세요.
*AWS Lambda에서 실행하기 위한 전제 조건으로 서버less frame work 구성
결론
실제 샘플은 AWS에서 공식적으로 제공한 샘플 코드로 다음과 같은 내용을 참고하십시오.
이루어지다
상기 견본 코드를 바탕으로userPoolID와 연결된 사용자의sub일람을 획득한 코드는 다음과 같다.
// Cognitoのセッション
func newCognitoSession()*cognitoidentityprovider.CognitoIdentityProvider {
sess := session.Must(session.NewSessionWithOptions(session.Options{
SharedConfigState: session.SharedConfigEnable,
}))
return cognitoidentityprovider.New(sess)
}
// userPoolIdを元にそれに紐づくUser一覧を取得する
func findUsersByPoolId(userPoolId string) (*cognitoidentityprovider.ListUsersOutput, error) {
return newCognitoSession().
ListUsers(&cognitoidentityprovider.ListUsersInput{UserPoolId: &userPoolId})
}
// CognitoのUser情報一覧からsubの一覧を取得する
func findSubs(userList *cognitoidentityprovider.ListUsersOutput) []string {
var userSubs []string
for _, user := range userList.Users {
for _, attr := range user.Attributes {
if *attr.Name == "sub" {
userSubs = append(userSubs, *attr.Value)
}
}
}
return userSubs
}
func main() error {
// ここに対象のuserPoolIdを入れる
userPoolId := "ADD ME!!"
userList, cognitoErr := findUsersByPoolId(userPoolId)
if cognitoErr != nil {
return cognitoErr
}
userSubs := findSubs(userList)
fmt.Println("userSubs: ", userSubs)
return nil
}
Reference
이 문제에 관하여(aws-sdk-go를 통해 Cognito에서 User의sub를 획득하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/nameless_gyoza/articles/6b7972b8304649b2cb15텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)