代码之家  ›  专栏  ›  技术社区  ›  Stéphane GRILLON

使用标识池(联合标识)时,管理员如何创建用户

  •  0
  • Stéphane GRILLON  · 技术社区  · 6 年前

    我想在我的用户池中创建任何用户。我需要使用AdminCreateUser才能从我的应用程序注册新用户。

    cognitoGetUser.getSession(function(err, session) {
        console.log ('Jwt Token: ' + session.getIdToken().getJwtToken());
        const url = 'cognito-idp.' + this.region.toLowerCase() + '.amazonaws.com/' + 
        this.poolData.UserPoolId;
        const logins: CognitoIdentity.LoginsMap = {};
        logins[url] = idTokenJwt;
        const params = {
            IdentityPoolId: this.identityPool,
            Logins: logins
        };
        const serviceConfigs = <awsservice.ServiceConfigurationOptions>{};
        const creds = new AWS.CognitoIdentityCredentials(params, serviceConfigs);
        console.log('buildCognitoCreds ' + creds);
        AWS.config.credentials = creds;
    
        const params = {
            UserPoolId: 'eu-central-1_KQ7Uxxxxx',
            Username: 'foo',
            DesiredDeliveryMediums: [ 'EMAIL' ],
            ForceAliasCreation: false,
            MessageAction: 'SUPPRESS',
            TemporaryPassword: '1234Foo*',
            UserAttributes: [
                {
                    Name: 'email',
                    Value: 'foo@domain.com'
                }
            ]
        };
        const cognitoidentityserviceprovider = new AWSCognito.CognitoIdentityServiceProvider();
        cognitoidentityserviceprovider.adminCreateUser(params, function(errr, data) {
            if (errr) {
                console.log(errr);
            } else {
                console.log(data);
            }
        });
    }
    

    我的第一个日志查找我的标识ID(标识ID在标识池中查找(联合标识)):

    identityId: eu-central-1:c0613a73-3e7f-41ba-951a-bef1aeaffb0b
    

    我的请求未运行,并且出现以下错误:

    Error: Missing credentials in config
        at c (aws-cognito-sdk.js:8437)
        at constructor.getCredentials (aws-cognito-sdk.js:8476)
        at constructor.<anonymous> (aws-cognito-sdk.js:9116)
        at constructor.callListeners (aws-cognito-sdk.js:11966)
        at constructor.emit (aws-cognito-sdk.js:11944)
        at constructor.emitEvent (aws-cognito-sdk.js:11571)
        at constructor.a (aws-cognito-sdk.js:11300)
        at d.runTo (aws-cognito-sdk.js:13172)
        at constructor.runTo (aws-cognito-sdk.js:11388)
        at constructor.send (aws-cognito-sdk.js:11374) "CredentialsError: Missing credentials in config
        at c (https://cdn.rawgit.com/aws/amazon-cognito-identity-js/master/dist/aws-cognito-sdk.min.js:25:25280)
        at constructor.getCredentials (https://cdn.rawgit.com/aws/amazon-cognito-identity-js/master/dist/aws-cognito-sdk.min.js:25:25799)
        at constructor.<anonymous> (https://cdn.rawgit.com/aws/amazon-cognito-identity-js/master/dist/aws-cognito-sdk.min.js:26:4064)
        at constructor.callListeners (https://cdn.rawgit.com/aws/amazon-cognito-identity-js/master/dist/aws-cognito-sdk.min.js:27:18300)
        at constructor.emit (https://cdn.rawgit.com/aws/amazon-cognito-identity-js/master/dist/aws-cognito-sdk.min.js:27:18038)
        at constructor.emitEvent (https://cdn.rawgit.com/aws/amazon-cognito-identity-js/master/dist/aws-cognito-sdk.min.js:27:12442)
        at constructor.a (https://cdn.rawgit.com/aws/amazon-cognito-identity-js/master/dist/aws-cognito-sdk.min.js:27:8292)
        at d.runTo (https://cdn.rawgit.com/aws/amazon-cognito-identity-js/master/dist/aws-cognito-sdk.min.js:28:6272)
        at constructor.runTo (https://cdn.rawgit.com/aws/amazon-cognito-identity-js/master/dist/aws-cognito-sdk.min.js:27:9860)
        at constructor.send (https://cdn.rawgit.com/aws/amazon-cognito-identity-js/master/dist/aws-cognito-sdk.min.js:27:9753)"
    

    其他测试: 如果我用这个可以,但不是我的 adminCreateUser :

    const clientParams: any = {};
    const sts = new STS(clientParams);
    sts.getCallerIdentity(function (errrr, data) {
        console.log('UserLoginService: Successfully set the AWS credentials');
    });
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Stéphane GRILLON    6 年前

    const cognitoidentityserviceprovider = new AWSCognito.CognitoIdentityServiceProvider();
    

    const cognitoidentityserviceprovider = new AWSCognito.CognitoIdentityServiceProvider({
                  credentials: creds
                });