我设置了一个 AWS Cognito 用户池/身份池来授权 API 网关后面的 Lambda 函数。我的 lambda 使用适用于 Node.js 的 AWS 开发工具包。登录过程工作正常。在我的函数中,我有一个CognitoIdentityServiceProvider用于调用该getUser函数的对象。我为函数提供的访问密钥来自 lambda 变量event.requestContext.identity.accessKey。但是,函数调用失败,并通过我的 Cloud Watch 日志查看以下错误:
{
"message": "Invalid Access Token",
"code": "NotAuthorizedException",
"time": "2019-08-03T20:34:50.511Z",
"requestId": ...,
"statusCode": 400,
"retryable": false,
"retryDelay": 36.048605458111794
}
Run Code Online (Sandbox Code Playgroud)
在经过身份验证的请求中提供给我的令牌为何无效?我什至不确定如何调试它,或者我应该寻找什么问题。
我如何尝试在 lamdba 处理程序中进行调用的示例:
var AWS = require('aws-sdk');
AWS.config.region = "us-west-2";
let poolData = {
UserPoolId: MY_POOL_ID,
ClientId: MY_CLIENT_ID
};
const cognito = new AWS.CognitoIdentityServiceProvider(poolData);
export async function myHandler(event, context, cb) {
var params = {
AccessToken: …Run Code Online (Sandbox Code Playgroud) amazon-web-services amazon-cognito aws-lambda aws-api-gateway