0
我在使用生成的Javascript SDK对我的API网关GET请求做出响应的x-amzn-errortype
标题中遇到403状态码,其中UnrecognizedClientException
。被调用的资源利用IAM Auth,根据用户组区分用户角色。AWS API网关具有生成的Javascript SDK的UnrecognizedClientException
这里是我的API客户端初始化函数
function initializeAPIClient(accessKey, secretKey, sessionToken){
var config = {
region : region,
accessKey : accessKey,
secretKey : secretKey,
sessionToken : sessionToken
}
apigClient = apigClientFactory.newClient(config);
}
这里是我的GET请求功能
function testCall(){
var params = '';
var body = '';
var additionalParams = '';
apigClient.testCallGet(params, body, additionalParams)
.then(function(result){
alert("Permissions are available to this user.");
})
.catch(function(result){
alert("Permissions are NOT available to this user.");
});
}
这里是我的请求头:
:authority:[API_ENDPOINT]
:method:GET
:path:/[STAGE]/[RESOURCE]
:scheme:https
accept:application/json
accept-encoding:gzip, deflate, sdch, br
accept-language:en-US,en;q=0.8
authorization:AWS4-HMAC-SHA256 Credential=[ACCESS_KEY_ID]/20170406/[REGION]/execute-api/aws4_request, SignedHeaders=accept;host;x-amz-date, Signature=[SIGNATURE]
origin:http://localhost:8000
referer:http://localhost:8000/php/[PAGE].php/?username=[USERNAME]&sessionToken=[SESSION_TOKEN]
user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
x-amz-date:20170406T180808Z
x-amz-security-token:[SESSION_TOKEN]
我不知道是什么可能会造成这种情况。当我搜索UnrecognizedClientException时推荐的解决方案似乎建议做我已经做的事情。
你是如何生成访问密钥和密钥的?该区域是否与您的API网关API区域匹配? –
嗨马克,我想你也回答了我的AWS论坛问题,但我会在此发布一个答案以保持一致性。基本上它是我的id令牌作为会话令牌的使用,最终成为我的逻辑中的错误,这在上面的代码中没有说明。 –