Amazon web services 如何使用AWS Cognito用户池令牌登录AWS Api网关?

Amazon web services 如何使用AWS Cognito用户池令牌登录AWS Api网关?,amazon-web-services,aws-api-gateway,amazon-cognito,Amazon Web Services,Aws Api Gateway,Amazon Cognito,我已经创建了一个API网关端点,在后端使用lambda函数。 然后,我用一个帐户创建了一个cognito用户池,并在API网关中将cognito用户池配置为授权者。我可以看出API是未经授权的 然后,我使用AWS Cognito Javascript SDK创建了一个小网页,以登录到用户池并获取访问令牌。我成功地做到了这一点。这是代码 var authenticationData={ 用户名:“用户名”, 密码:“test123”, }; var authenticationDetails=新

我已经创建了一个API网关端点,在后端使用lambda函数。 然后,我用一个帐户创建了一个cognito用户池,并在API网关中将cognito用户池配置为授权者。我可以看出API是未经授权的

然后,我使用AWS Cognito Javascript SDK创建了一个小网页,以登录到用户池并获取访问令牌。我成功地做到了这一点。这是代码

var authenticationData={ 用户名:“用户名”, 密码:“test123”, }; var authenticationDetails=新的authenticationDetails身份验证数据; 变量池数据={ UserPoolId:'ap-southest-2_12312',//此处是您的用户池id ClientId:'434324324'//此处是您的客户端id }; var userPool=新的CognitoUserPoolData; var userData={ 用户名:“用户名”, 池:用户池 }; var self=这个; var cognitoUser=新的cognitouserdata; cognitoUser.AuthenticateAuthenticationDetails{ onSuccess:函数结果{ var tok=result.getAccessToken.getJwtToken; console.log'access token+'+tok; self.setState{token:tok}; //潜在:如果以前未在其他地方设置区域,则需要设置区域。 //AWS.config.region=; //AWS.config.credentials=新的AWS.CognitoIdentityCredentials{ //IdentityPoolId:“…”,//此处是您的标识池id //登录:{ ////根据用户池所在的特定区域更改下面的键。 //“cognito idp..amazonaws.com/”:tok // } // }; //现在凭据已更新,请实例化aws sdk服务对象。 //示例:var s3=新的AWS.s3; }, onFailure:functionerr{ alerterr; },
}; 使用API网关控制台中授权者的“测试”功能,您可能能够更轻松地进行调试。您可以在那里粘贴有效的JWT令牌,并在授权者上运行测试;如果有任何问题,您应该在日志输出中看到它们。

还有一个授权人的测试页面。我的JWT令牌在那里也不起作用。API控制台中的测试在有JWT令牌和没有JWT令牌的情况下都起作用。是的,我说的是授权人的测试页面。如果令牌在那里不起作用,那么您应该能够使用日志输出调试问题。令牌确实会过期,因此请确保使用新令牌进行测试。令牌必须从与您在授权者上设置的“providerARN”匹配的用户池中颁发。