Tah*_*raf 5 authorization amazon-web-services amazon-cognito aws-lambda aws-api-gateway
我们使用API Gateway来公开位于AWS Lambdas. 作为授权方,CognitoAPI Gateway 中使用了用户池来对用户进行身份验证并保护受保护的端点。因此,一般流程是,用户传递下面提到的信息以通过 API 网关端点 ( /grantToken)从 cognito 获取访问令牌:
1. App client id
2. App client secret
3. username
4. password
Run Code Online (Sandbox Code Playgroud)
获得 后access_token,用户在访问受保护端点时在标头中传递此授权令牌。Cognito 自动授权用户,并将请求重定向到特定的 AWS Lambda。这一切工作正常。
我想知道的是,在 lambda 中,来自授权令牌(在标头中传递) - 如何确定传递了哪个用户的令牌?还有其他方法可以确定授权用户的身份吗?AWS Cognito 在这种情况下有什么用吗?
注意:如果我可以App client id从传递的授权令牌中获取,它将满足我的目的。
对您问题的答复:
1.如何判断是哪个用户的token被传递了?
例如:
var jwt = require('jsonwebtoken'); // you can use import
var decoded = jwt.verify(token, secret);
console.log(decoded) // bar
Run Code Online (Sandbox Code Playgroud)
2.是否有其他方法可以确定授权用户的身份?
请参阅:https ://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html
3.如果我可以从传递的授权令牌中获取应用程序客户端ID,它将满足我的目的。
无法从授权令牌获取应用程序客户端 ID。
通常,是您在 aws Cognito 的 AWS 管理控制台的用户池部分创建应用程序时收到的客户端应用程序 ID。
用户池访问令牌包含有关经过身份验证的用户的声明,但与 ID 令牌不同,它不包含身份信息。访问令牌的主要目的是在用户池中的用户上下文中授权 API 操作。
正确的做法:
| 归档时间: |
|
| 查看次数: |
1301 次 |
| 最近记录: |