IP 차단 없이 API를 통해 사용자 계정을 삭제하는 방법

Discourse를 다른 앱과 연동했으며, 사용자는 Keycloak에서 관리됩니다. 사용자가 다른 앱에서 계정을 삭제하면, Discourse에서도 API를 통해 해당 계정을 삭제합니다.
정상적으로 작동하지만, 이 경우 해당 사용자의 IP가 Discourse에서 자동으로 차단되어, 같은 IP에서 다른 사용자로 로그인할 수 없습니다.
이 IP 차단을 비활성화할 수 있나요? 아니면 일정 시간 후에 자동으로 차단이 해제되도록 설정할 수 있나요?

네. IP를 차단하는 요소를 인스펙션(인-체크)해야 합니다. Discourse API 역공학을 참고하고, UX에서 해당 작업을 수행했을 때 어떤 일이 일어나는지 확인해 보세요.

사용자 삭제 API 문서에 따르면, IP를 차단할지 여부는 요청 본문에 포함된 옵션 중 하나입니다.

따라서 요청을 보내는 코드에서 요청 본문에 "block_ip": false를 포함한 JSON을 전달할 수 있습니다.

예를 들어:

{
  delete_posts: false,
  block_email: false,
  block_urls: false,
  block_ip: false,
}

이 내용을 정확히 이해하지 못하겠습니다.
계정이 삭제된 후에 API를 통해 IP를 차단 해제해야 한다는 뜻인가요?

사실 저는 Discourse에서 설정 스위치를 통해 이를 처리할 수 있기를 바랐습니다.

아, 알겠어요. 감사합니다, 이거 한번 시도해 볼게요.

안녕하세요
여기서 답변을 받으셨나요? 제 경우에는 API 요청 본문에 “block_ip”: false를 사용해도 작동하지 않아서, 혹시 성공하셨거나 디스코러스 API를 역공학하여 별도의 요청을 보낸 적이 있으신가요?

저에게는 정상적으로 작동합니다.
요청 본문은 다음과 같습니다:

{
  delete_posts: false,
  block_email: false,
  block_urls: false,
  block_ip: false,
}

요청 본문에 대해 정확히 "block_ip": false를 사용한 것이 문제였을지 궁금합니다. JSON 객체 문자열을 사용한 경우와는 다릅니다. 더 이상 내 게시글을 수정할 수 없지만, 표시된 솔루션을 더 명확히 이해할 수 있도록 JSON을 예시로 추가해 달라고 플래그를 설정해 두었습니다.

답변 감사합니다.
요청 JSON 본문에 {block_email: false}를 설정해 두었습니다(저희 상황에서는 block_email입니다). 하지만 사용자 삭제 API에서는 이 설정이 적용되지 않는 것 같습니다. Screened Emails(블록된 이메일)에서 이메일을 제거하려면 별도의 요청을 보내야 했습니다.

JSON 문자열을 생성하는 방식(수동 또는 라이브러리 사용)에 따라 작은따옴표, 큰따옴표, 또는 따옴표를 전혀 사용하지 않는 것을 시도해 볼 수 있습니다. 그 외에는 제가 아는 바가 없습니다. Discourse API는 일반적으로 약속한 대로 정확히 작동합니다.

사용자 삭제 API에서 동일한 상황에 직면하는 분들을 위해 여기에 공유합니다.
block_ip: False는 IP가 스크리닝 대상 IP 목록에 추가되는 것을 확실하게 방지합니다.
block_email: False는 이메일이 screened_emails에 추가되는 것을 방지해야 하지만, 그러나 **일부 경계 사례(스팸으로 표시된 사용자나 TL0 신규 사용자 등)**에서는 block_email이 False여도 이메일 스크리닝이 트리거될 수 있습니다.
이 경우 Screened Emails에서 이메일을 차단 해제하기 위해 추가 요청이 필요합니다.