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
来交换会话令牌即可