首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aws认知+角7-如何在同一时间创建用户并将用户分配给用户组

Aws认知+角7-如何在同一时间创建用户并将用户分配给用户组
EN

Stack Overflow用户
提问于 2019-02-13 14:42:05
回答 1查看 701关注 0票数 0

我希望创建认知用户,并将用户分配给用户组,同时使用。当你必须创造一个可观察的,这对我来说是好的。但当有必要创造一个可观察的,提出两个要求,我不工作。我认为我们需要使用forkJoinflatMap。我使用角7,所以RxJs 6.x。

创建代码OK:

代码语言:javascript
复制
createUser(user: User): Observable<User[]> {
    const _self = this;
    const cognitoidentityserviceprovider = new AWSCognito.CognitoIdentityServiceProvider({
      credentials: this.getCognitoCreds()
    });
    const params = {
      UserPoolId: this.poolData.UserPoolId,
      Username: user.username,
      DesiredDeliveryMediums: [ 'EMAIL' ],
      ForceAliasCreation: false,
      MessageAction: 'SUPPRESS',
      TemporaryPassword: '1234fooo*',
      UserAttributes: [
        {
          Name: 'email',
          Value: user.email
        }
      ]
    };
    return Observable.create(obs => {
      cognitoidentityserviceprovider.adminCreateUser(params, function(error, data) {
        if (error) {
          console.log(error);
          return Observable.throw(error || 'Server error');
        } else {
          console.log(data);
          //
          //
          // HERE user is create  :)
          // I want add to group here (see code down in this post) 
          //
          //
          return obs.next(data);
        }
      });
    });
  }

添加组代码OK:

代码语言:javascript
复制
const p = {
            GroupName: 'admin',
            UserPoolId: _self.poolData.UserPoolId,
            Username: user.username
          };
          return Observable.create(o => {
            cognitoidentityserviceprovider.adminAddUserToGroup(p, function(err, d) {
              if (err) {
                console.log(err);
                return Observable.throw(err || 'Server error');
              } else {
                console.log(d);
                return o.next(d);
              }
            });
          });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-13 16:02:16

我将第一个可观测值放在const中,然后返回可观测的.pipe(mergeMap((u: CognitoUser) => {2nd observable} )

代码语言:javascript
复制
createUser(user: User): Observable<User[]> {
    const _self = this;
    const cognitoidentityserviceprovider = new AWSCognito.CognitoIdentityServiceProvider({
      credentials: this.getCognitoCreds()
    });
    const params = {
      UserPoolId: this.poolData.UserPoolId,
      Username: user.username,
      DesiredDeliveryMediums: [ 'EMAIL' ],
      ForceAliasCreation: false,
      MessageAction: 'SUPPRESS',
      TemporaryPassword: '1234Fooo*',
      UserAttributes: [
        {
          Name: 'email',
          Value: user.email
        }
      ]
    };
    const o = Observable.create(obs => {
      cognitoidentityserviceprovider.adminCreateUser(params, function(error, data) {
        if (error) {
          console.log(error);
          return Observable.throw(error || 'Server error');
        } else {
          console.log(data);
          return obs.next(data.User);
        }
      });
    });
    return o.pipe(mergeMap((u: CognitoUser) => {
      const p = {
        GroupName: 'admin',
        UserPoolId: _self.poolData.UserPoolId,
        Username: u.Username
      };
      return Observable.create(ob => {
        cognitoidentityserviceprovider.adminAddUserToGroup(p, function(err, d) {
          if (err) {
            console.log(err);
            return Observable.throw(err || 'Server error');
          } else {
            console.log(d);
            return ob.next(d);
          }
        });
      });
    }));
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54672829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档