1

在HTTP響應頭設置Cookie的我已啓用了LAMBDA代理集成,並設置響應頭LAMBDA輸出和API網關,將返回他們作爲給客戶端的HTTP響應的一部分的一部分。從AWS拉姆達節點JS

示例代碼:

callback(null, { 
    "statusCode": 302, 
    "Location" : "https://somewebsite.com" 
    "headers": { "headerName": "headerValue", ... }, 
    "body": "..." 
}); 

我需要在頭送出3塊餅乾。我試過了。但是,失敗:

callback(null, { 
    "statusCode": 302, 
    "Location" : "https://somewebsite.com" 
    "headers": { "Set-Cookie": [cookie1String, cookie2String, cookie3String] }, 
    "body": "..." 
}); 

[編輯] 我串接Cookie,並通過在作爲響應,客戶得到的cookie。但是,當客戶端在「位置」中調用目標時,該請求在標題中沒有cookie。

callback(null, { 
    "statusCode": 302, 
    "Location" : "https://somewebsite.com" 
    "headers": { "Set-Cookie": c1=cookie1String;c2=cookie2String; c3=cookie3String] }, 
    "body": "..." 
}); 

請幫助將這3個cookie發送給我的客戶。

回答

-1

Api網關不允許您多次映射相同的標頭。我通過使用不同的套管來設置cookie方法。

回調(空,{ 「的StatusCode」:302, 「位置」: 「https://somewebsite.com」 「頭」:{ 「設置Cookie」:COOKIE1 「的Set-Cookie」:COOKIE2}, 「體「:」...「 });

+0

這顯然是AWS API的破綻。如果他們在沒有通知的情況下改變,我不會感到驚訝。 – vcarel

0

我會說你的問題與你的回調中的響應對象沒有按照api網關預期的方式格式化有關。

這些鏈接特別引用aws文檔。

http://docs.aws.amazon.com/apigateway/latest/developerguide/handle-errors-in-lambda-integration.html

問題與您的代碼...

  • 「位置」看起來並不像一個有效的屬性
  • 確保你的頭鍵/值對都使用類似的實際JSON對象JSON.stringify

不要忘記爲完整的請求和響應啓用api網關和lambda的日誌。這兩個日誌將幫助您調試。