我的目标是检查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进程已退出 完成请求
答案 0 :(得分:2)
问题出在Node 6.10上。
Lambda运行时环境应设置为Node 8.10或更高版本,以支持异步功能。