모든 웹훅 요청에는 서명이 있습니다. 서명을 확인하면 요청이 Bottari에서 왔고 본문이 바뀌지 않았음을 알 수 있습니다.
본문을 파싱한 뒤 다시 문자열로 만들어 서명하지 마세요. 받은 바이트를 그대로 사용하세요. 재시도 때는 attempt_number가 바뀌므로 시도마다 서명이 다릅니다.
Node 예제
node:http와 node:crypto만 사용합니다. 환경 변수 BOTTARI_WEBHOOK_TOKEN이 없으면 인증 단계로 보고 받은 본문을 로그에 남깁니다.
인증을 마치면 환경 변수를 넣어 로그를 남기는 코드가 실행되지 않게 하세요. 로그에 남은 토큰은 지우세요.
Express를 사용한다면 express.json() 대신 express.raw({ type: "application/json" })로 받아 원문 바이트를 그대로 사용하세요.
확인용 값
구현을 확인할 때 사용하세요. 아래 값은 예시이며 실제 토큰이 아닙니다.
인증 토큰 요청의 서명
인증 토큰을 보내는 요청도 그 토큰을 키로 서명합니다. 받는 서버에는 아직 키가 없으므로 이 요청의 서명은 확인할 수 없습니다. 토큰을 화면에 넣어야 구독이 켜지므로, 그 주소에서 토큰을 받은 사람만 인증할 수 있습니다.