【发布时间】:2017-08-05 04:43:23
【问题描述】:
我想知道是否有人对如何解决 API Gateway/Lambda 上的以下问题有一个好主意 - API 的使用者只需要一个令牌,该令牌将通过附加到 API 网关的认知授权器授权他们,API 必须处理好所有事情,然后回火一个令牌。
所以用户向我的登录 Lambda 发送他们的用户名和密码,以便按照文档我执行以下操作(为简洁起见,我删除了错误处理):
const cognitoidentity = new AWS.CognitoIdentity({ region: 'eu-west-1' })
const userId = authenticationService.authorise(username, password)
const params = {
IdentityPoolId: 'eu-west-1:my-identity-pool-id',
Logins: {
'myapp.mydomain.com': userId,
},
}
cognitoidentity.getOpenIdTokenForDeveloperIdentity(params, (err, data) => {
// Now I have an OpenId token and an identity Id
})
最初我认为我应该调用 GetCredentialsForIdentity,但它并没有返回访问令牌,我是沿着正确的路线前进还是错过了什么?
更新:明确地说,我不希望消费者必须实现 AWS 客户端 sdk,基本上我希望他们能够简单地添加一个标头,让他们像传统 api 一样发出请求。
【问题讨论】:
-
如果消费者不需要实现AWS SDK,如何获取访问API的token?您有一个自定义令牌生成器或类似的东西供您的消费者使用?
-
好吧,对于用户池来说,他们会得到一个 JWT,这很好 - 从进一步的研究来看,我认为身份池是在浪费时间,所以是的,我正在考虑创建自己的 JWT 实现以与联合身份一起使用,当我证明这一点时,我会用答案更新它。
标签: amazon-web-services lambda aws-api-gateway amazon-cognito