Docs Menu
Docs Home
/ /
Atlas App Services
/ /

웹훅 요청 & 응답 [사용 중단됨]

이 페이지의 내용

  • 개요
  • 유효성 검사 메서드 요청
  • 페이로드 서명 확인
  • 쿼리 매개변수로서의 비밀
  • 웹훅 응답 객체

중요

타사 서비스 & 푸시 알림 사용 중단

App Services의 타사 서비스 및 푸시 알림은 함수에서 외부 종속성을 사용하는 HTTP 엔드포인트를 만들기 위해 더 이상 사용되지 않습니다.

웹훅은 동작에 대한 변경 없이 HTTPS 엔드포인트로 이름이 변경되었습니다. 기존 웹훅을 마이그레이션해야 합니다.

기존 서비스는,9월까지 30 계속2025 작동합니다.

타사 서비스 및 푸시 알림은 이제 더 이상 사용되지 않으므로 App Services UI에서 기본적으로 제거되었습니다. 기존 타사 서비스 또는 푸시 알림을 관리해야 하는 경우 다음을 수행하여 구성을 UI에 다시 추가할 수 있습니다.

  • 왼쪽 탐색의 Manage 섹션에서 App Settings를 클릭합니다.

  • Temporarily Re-Enable 3rd Party Services 옆의 토글 스위치를 활성화한 다음 변경 사항을 저장합니다.

수신 웹훅 은 서비스에 따라 요청의 유효성을 검사하고 Atlas App Services가 외부 서비스로 다시 전송하는 응답을 사용자 지정하는 여러 가지 방법을 제공합니다.

웹훅 요청이 신뢰할 수 있는 출처에서 오는지 확인하기 위해 일부 외부 서비스에서는 들어오는 요청에 몇 가지 규정된 방식 중 하나로 비밀 문자열을 통합하도록 요구합니다. HTTP 서비스 와 같은 다른 서비스에서는 선택적으로 요청 유효성 검사를 요구할 수 있습니다.

웹훅용 Request Validation 에는 페이로드 서명 확인쿼리 매개변수로서의 비밀, 이렇게 두 가지 유형이 있습니다.

요청 시 HTTP/1.1 이상이 필요합니다.

참고

보안을 극대화하려면 시크릿 Python 모듈 과 같은 보안 패키지를 사용하여 을 프로그래밍 방식으로 secret string 생성합니다. . 시크릿을 게시하거나 버전 제어 시스템에 포함하지 않도록 합니다.

Verify Payload Signature 요청 유효성 검사 옵션을 사용하려면 수신 요청에 요청 본문에서 생성된 16진수 인코딩된 LMAC SHA-256 해시와 X-Hook-Signature 헤더의 secret 문자열이 포함되어야 합니다.

예시

다음 웹훅 요청 본문과 비밀을 고려하세요.

const body = { "message":"MESSAGE" }
const secret = 12345

다음 Realm 함수 은 이 bodysecret 에 대한 해시를 생성합니다.

// Generate an HMAC request signature
exports = function(secret, body) {
// secret = the secret validation string
// body = the webhook request body
return utils.crypto.hmac(EJSON.stringify(body), secret, "sha256", "hex");
}
// Returns: "828ee180512eaf8a6229eda7eea72323f68e9c0f0093b11a578b0544c5777862"

모든 요청에서 해시 값을 X-Hook-Signature HTTP 요청 헤더에 할당해야 합니다.

X-Hook-Signature:sha256=<hex-encoded-hash>

요청이 제대로 서명되었는지 테스트하기 위해 다음 curl 명령을 실행할 수 있습니다.

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Hook-Signature:sha256=828ee180512eaf8a6229eda7eea72323f68e9c0f0093b11a578b0544c5777862" \
-d '{"message":"MESSAGE"}' \
<webhook URL>

Require Secret as Query Param 요청 유효성 검사 옵션에는 수신 요청에 secret string 지정된 이 쿼리 매개 변수 로 포함되어야 URL 합니다. 끝에 추가됩니다.

예시

12345secret 값을 사용하도록 구성된 웹훅을 가정해 보겠습니다. 모든 요청은 시크릿을 쿼리 매개변수로 추가한 웹훅 URL로 이루어져야 합니다.

<webhook URL>?secret=12345

이 URL에 대한 요청이 제대로 확인되는지 테스트하기 위해 다음 curl 명령을 실행할 수 있습니다.

curl -H "Content-Type: application/json" \
-d '{ "message": "HELLO" }' \
-X POST '<webhook URL>?secret=12345'

App Services는 웹훅의 HTTP 응답을 나타내는 response 객체를 웹훅 함수의 두 번째 인수로 자동 전달합니다. 다음 표에는 response 객체를 수정하는 데 사용할 수 있는 메서드가 나열되어 있습니다.

메서드
arguments
설명
setStatusCode(code)
code integer

HTTP 응답 상태 코드 설정.

예시

response.setStatusCode(201);
setBody(body)
body string 또는 BSON.Binary

HTTP 응답 본문 설정.

body 이 문자열인 경우 반환되기 전에 BSON.Binary 로 인코딩됩니다.

예시

response.setBody(
"{'message': 'Hello, World!'}"
);
setHeader(name, value)
name string
value string

name으로 지정된 HTTP 응답 헤더value 인수에 전달된 값으로 설정합니다. 이렇게 하면 해당 헤더에 이미 할당되었을 수 있는 다른 모든 값이 재정의됩니다.

예시

response.setHeader(
"Content-Type",
"application/json"
);
addHeader(name, value)
name string
value string

name으로 지정된 HTTP 응답 헤더value 인수에 전달된 값으로 설정합니다. setHeader와 달리 이는 헤더에 이미 할당된 다른 값을 재정의하지 않습니다.

예시

response.addHeader(
"Cache-Control",
"max-age=600"
);
response.addHeader(
"Cache-Control",
"min-fresh=60"
)

돌아가기

서비스 작업 호출