1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 我打算回答自己的问题,但我很想知道人们是否认为这是好事还是坏事。如果没有别的,这可能会作为一个例子,帮助其他遇到相同问题的人。
看起来,如果你有一个访问令牌,你总是可以调用 GetUser 来获取 ID。访问令牌包含一个发布者 URL,这一定是 CognitoIdenttityProviderClient 知道如何返回到正确的用户池。这似乎可以正常工作。我不清楚 GetUser 是否检查令牌的有效性,但我认为一定要这样做,因为它说访问令牌必须没有过期。但文档并没有明确说明这一点。(有人能够确认 GetUser 充分验证了访问令牌吗?似乎一定要这样。)
export function getAllCustomers(request: APIGatewayProxyEventV2WithJWTAuthorizer, context: Context):
Promise<APIGatewayProxyResultV2<GetCustomersResponse>> {
/* 从 API 网关 v2 代理事件中获取授权头 */
const authHeader = request.headers['authorization'];
if (authHeader === undefined) {
return Promise.resolve({
body: "没有承载令牌",
statusCode: http2.constants.HTTP_STATUS_FORBIDDEN
})
}
/* 查看它是否以 Bearer 开头,以表明它是访问令牌 */
if(!authHeader.startsWith("Bearer ")) {
return Promise.resolve({
body: "授权头无效",
statusCode: http2.constants.HTTP_STATUS_FORBIDDEN
})
}
const accessToken = authHeader.substring(7)
const cc = new CognitoIdentityProviderClient({})
const ccReq = new GetUserCommand({AccessToken: accessToken});
return cc.send<GetUserCommandInput, GetUserCommandOutput>(ccReq)
.then((result: GetUserCommandOutput) => {
/* 现在我们有完整的 ID,可以做一些有用的事
相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前