如果您想在后端列出特定用户的组并将它们作为API返回,这里是一个完整的示例,使用golang的aws sdk:
func sessionWithRegion(region *string) *session.Session {
sess := Session.Copy()
if v := aws.StringValue(sess.Config.Region); len(v) == 0 {
sess.Config.Region = region
}
return sess
}
func getGroupsForUser(region, userPoolId, userName *string, limit int64, nextToken ...*string) (*cognitoidentityprovider.AdminListGroupsForUserOutput, error) {
sess := sessionWithRegion(region)
svc := cognitoidentityprovider.New(sess)
input := &cognitoidentityprovider.AdminListGroupsForUserInput{
UserPoolId: userPoolId,
Username: userName,
Limit: &limit,
}
if nextToken != nil && len(nextToken) > 0 {
input.NextToken = nextToken[0]
}
return svc.AdminListGroupsForUser(input)
}
nextToken
被用于支持分页加载更多用户组,以便从Cognito返回/获取还有用户需要返回的情况,换句话说,是为了获取下一页。这里是一个简单示例,展示您的调用应该是什么样子的
func listGroups(pageNo *string) ([]*cognitoidentityprovider.GroupType, *string, error) {
page, err := getGroupsForUser(aws.String("us-east-1"), aws.String("xxx"), aws.String("myuserName"), 60, map[bool]*string{true: pageNo, false: nil}[pageNo != nil])
if err != nil {
return nil, nil, err
}
return page.Groups, page.NextToken, nil
}
以上的代码片段只是为了让您和其他社区的同事更容易理解这个想法以及如何实现它,但可能需要一些微调。如果您需要更多帮助,请随时留言。