验证Cognito令牌(Node.JS)

时间:2018-09-25 08:11:49

标签: amazon-web-services jwt token amazon-cognito verify

我的目标是检查Cognito令牌是否有效且未过期。我发现这个有趣而友好的程序包。 https://www.npmjs.com/package/verify-cognito-token

我已经将其实现为AWS lambda函数,但是由于某种原因,我收到了错误响应。

//required params
const params = {
  region: '<your-aws-region>',
  userPoolId: '<your-user-pool-id>'
}

//optional claims examples
const claims = {
  aud: '<your-app-client-id>',
  email_verified: true,
  auth_time: time => time <= 1524588564,
  'cognito:groups': groups => groups.includes('Admins')
}

const Verifier = require('verify-cognito-token');
const verifier = new Verifier(params, claims);

verifier.verify(token)
.then(result =>{
  //result will be `true` if token is valid, non-expired, and has matching claims
  //result will be `false` if token is invalid, expired or fails the claims check
})

错误响应:

  

响应:{“ errorMessage”:“ RequestId:   4f8d8756-c097-11e8-8adf-6f88f5e6d44a在完成之前已退出进程   请求”}

     

请求ID:“ 4f8d8756-c097-11e8-8adf-6f88f5e6d44a”

     

功能日志:START RequestId:4f8d8756-c097-11e8-8adf-6f88f5e6d44a   版本:$ LATEST   > 2018-09-25T07:47:54.317Z 4f8d8756-c097-11e8-8adf-6f88f5e6d44a /var/task/node_modules/verify-cognito-token/index.js:6   异步功能fetchKeys(){         ^^^^^^^^^ SyntaxError:意外的令牌功能       在createScript(vm.js:56:10)       在Object.runInThisContext(vm.js:97:10)       在Module._compile(module.js:542:28)       在Object.Module._extensions..js(module.js:579:10)       在Module.load(module.js:487:32)       在tryModuleLoad(module.js:446:12)       在Function.Module._load(module.js:438:3)       在Module.require(module.js:497:17)       在要求时(internal / module.js:20:19)       在exports.handler(/var/task/index.js:17:22)处END RequestId:4f8d8756-c097-11e8-8adf-6f88f5e6d44a REPORT RequestId:   4f8d8756-c097-11e8-8adf-6f88f5e6d44a时长:191.85 ms已结算   持续时间:200 ms内存大小:128 MB已使用的最大内存:19 MB
  RequestId:4f8d8756-c097-11e8-8adf-6f88f5e6d44a进程已退出   完成请求

1 个答案:

答案 0 :(得分:2)

问题出在Node 6.10上。

Lambda运行时环境应设置为Node 8.10或更高版本,以支持异步功能。