小编plo*_*lot的帖子

AWS api网关和cognito集成

我正在创建一个api,我只希望它可以访问我的身份池中经过身份验证的用户.api调用lambda函数返回"hello world".当我在我的api中没有设置身份验证时,它工作正常,但是当我创建自定义授权程序并将其设置为我的api的身份验证方法时,它返回null.

这是我用来帮助创建自定义身份验证器的链接

这是我做的事情清单:

  1. 我使用的是Federate标识,并确保我在authorizer.js中正确复制了标识池ID和区域.

  2. 我在创建自定义授权程序时添加了Authenticated角色,在我的联邦身份中设置,ARN成为执行角色(不确定我是否假设这样做).

  3. 在我的身份访问管理中,我将AmazonAPIGatewayInvokeFullAccess策略附加到Cognito授权角色.

  4. 当我没有传递任何标题并进行api调用时,我收到了未经授权的消息.

  5. 当我在标题中传递假令牌并进行api调用时,我收到一条空消息.

  6. 当我在标头中传递AWS提供的令牌并进行api调用时,我收到一条空消息.

  7. 当我尝试在AWS中测试api调用时,返回状态为200,并显示"Hello World"消息

任何人都知道问题是什么以及如何解决它?

-Update-
这是我从链接中的authorizer.js文件修改的区域.

console.log('Loading function');

var jwt = require('jsonwebtoken'); 
var request = require('request'); 
var jwkToPem = require('jwk-to-pem');

var userPoolId = '{REPLACE_WITH_YOUR_POOL_ID}';
var region = '{REPLACE_WITH_YOUR_REGION}'; //e.g. us-east-1
var iss = 'https://cognito-idp.' + region + '.amazonaws.com/' + userPoolId;
var pems;
Run Code Online (Sandbox Code Playgroud)

我唯一做的就是添加了我的同源userPoolId和region.

integration amazon-web-services node.js amazon-cognito aws-api-gateway

4
推荐指数
1
解决办法
2664
查看次数