Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用从Nodejs中的用户池返回的令牌访问标识池_Javascript_Node.js_Amazon Web Services_Amazon Cognito - Fatal编程技术网

Javascript 无法使用从Nodejs中的用户池返回的令牌访问标识池

Javascript 无法使用从Nodejs中的用户池返回的令牌访问标识池,javascript,node.js,amazon-web-services,amazon-cognito,Javascript,Node.js,Amazon Web Services,Amazon Cognito,在用户成功登录后,我试图使用从用户池返回的令牌访问标识池,但现在我得到:这些凭据对于访问此资源无效。。我已经在身份池的身份验证提供程序中设置了UserpoolId和ClientId。 这是我的密码 AWS.config.region = 'us-xxx-xx'; AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'us-xxxxxx', Log

在用户成功登录后,我试图使用从用户池返回的令牌访问标识池,但现在我得到:
这些凭据对于访问此资源无效。
。我已经在身份池的身份验证提供程序中设置了UserpoolId和ClientId。 这是我的密码

    AWS.config.region = 'us-xxx-xx';
    AWS.config.credentials = new AWS.CognitoIdentityCredentials({
        IdentityPoolId: 'us-xxxxxx',
        Logins: {
            'cognito-idp.us-xxx-xx.amazonaws.com/us-xxx-xxx': 'token-return-from-user-pool'
        },
    });
    const cognito = new CognitoIdentity;
    const openIdToken = await cognito.getOpenIdTokenForDeveloperIdentity({
        IdentityPoolId: 'us-xxxxxx',
        Logins: {
            'cognito-idp.us-xxx-xx.amazonaws.com/us-xxx-xxx': 'token-return-from-user-pool'
        },
        TokenDuration: 3600,
    }).promise();
我收到此错误:
这些凭据对于访问此资源无效


我的错在哪里?请帮助我

如果您注释掉
getOpenIdTokenForDeveloperIdentity()
调用,是否仍会收到相同的错误?我试图理解
CognitoIdentityCredentials()
调用是否抛出了错误,因为该部分应该使用从用户池返回的令牌。因此,在此阶段之前,您应该拥有访问AWS资源所需的临时AWS凭据。
getOpenIDTokenfordeveloperIdentifications()
方法适用于使用开发人员身份验证的身份,而不是已由ID提供商(如Cognito用户池或Facebook等)身份验证的身份。@lemming yes,不需要call方法
getOpenIDTokenfordeveloperIdentifications
来获取openIdToken,因为我已经从Cognito用户池返回了令牌,只需调用
getCredentialsForIdentity
来交换会话令牌即可