簡體   English   中英

帶有生成的Javascript SDK的AWS API Gateway UnrecognizedClientException

[英]AWS API Gateway UnrecognizedClientException with Generated Javascript SDK

我在使用生成的Javascript SDK對API網關GET請求的響應的x-amzn-errortype標頭中遇到帶有UnrecognizedClientException的403狀態代碼。 被調用的資源利用了IAM Auth,它根據用戶的用戶組來區分用戶角色。

這是我的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時建議的解決方案似乎建議做我已經在做的事情。

我已經解決了自己的問題,因此這是遇到類似邏輯錯誤的任何人的答案。 不要將Id令牌用作您的會話令牌,這就是我正在做的事情。 id令牌與訪問密鑰和秘密密鑰一起用於生成會話令牌。 不要混淆兩者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM