簡體   English   中英

使用 Amazon API Gateway 時,如何從 Django 后端獲取請求中使用的 API 密鑰?

[英]When using Amazon API Gateway, how do I get the API key used in the request from a Django backend?

相當不言自明的標題。 我在 AWS 中使用 API Gateway,需要一個 API 密鑰來訪問用 Django 編寫的后端(不使用 lambda)。 我需要知道如何訪問請求中使用的 API 密鑰以跟蹤誰在應用程序級別做了什么。

您可以使用映射模板並從 $context 變量中獲取 API 密鑰,它是身份對象內的 apiKey 屬性: http ://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template -reference.html#context-variable-reference

為您的請求創建一個映射模板並在其中包含該屬性。 例如,如果您想包含整個請求正文 + API 密鑰,您可以這樣做:

{
  "body": $input.json('$'),
  "apiKey": "$context.identity.apiKey"
} 

根據您的后端應用程序的構建方式,您可以在 HTTP 參數(路徑、查詢字符串或標頭)或請求正文中將 API 密鑰發送到您的應用程序。 請通讀有關如何在兩個系統之間移動數據的文檔

謝謝,瑞安

這是我最終使它工作的方式。 在模板的頂部或底部,包含此行。

#set($context.requestOverride.header.x-api-key = $context.identity.apiKey)

當您的后端收到此請求時,api 密鑰將位於標頭x-api-key

這是一個基本的映射模板,它只轉發 (json) 正文和標題。

$input.json("$")
#set($context.requestOverride.header.x-api-key = $context.identity.apiKey)

API Gateway 使用 X-API-Key 標頭,所以我希望我的后端也使用它。 這樣我就可以使用相同的測試命令,只是 URL 不同。

暫無
暫無

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

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