我正在尝试从Axios访问AWS API Gateway托管的服务。使用AWS Amplify,我使用Auth.currentSession()获得令牌,该令牌传递 CognitoIdToken 。 jwtToken嵌入在该对象中。我尝试使用HTTP标头中的jwtToken调用受保护的服务(授权者设置为AWS_IAM),同时尝试 Authorization 和 x-api-key 键,没有喜悦。给定CognitoIdToken / jwtToken,您如何通过AWS_IAM的授权者调用AWS API Gateway服务?
答案 0 :(得分:0)
如果您使用的是AWS_IAM身份验证,则需要将AWS SigV4与您的访问密钥,秘密密钥和会话密钥一起使用,您的认知用户将其作为授权的一部分。
如果要将cognito JWT用作身份验证机制,则需要更改代码以在API网关级别使用cognito身份验证。
答案 1 :(得分:0)
我一直在使用API网关和Cognito来为我的Vuejs应用程序授权。您可以按照以下步骤轻松进行配置。
#set($inputRoot = $input.path('$')) { "cognitoUsername": "$context.authorizer.claims.email" }
您可以点击此链接以获取有关AWS中模板的更多详细信息 https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html
希望这会有所帮助。