我们已将 Discourse 与另一个应用程序集成,用户在 Keycloak 中进行管理。当用户在另一个应用程序中删除其帐户时,我们也会通过 API 在 Discourse 中将其删除。
这可以正常工作,但用户的 IP 随后会在 Discourse 中被自动阻止,因此无法从同一 IP 登录其他用户。
可以关闭此 IP 阻止功能吗?或者让它在一段时间后自动解除阻止?
是的。您需要检查阻止 IP 的东西。请参阅逆向工程 Discourse API,看看从用户体验执行此操作时会发生什么。
根据删除用户的 API 文档,是否阻止 IP 是在请求正文中传递的选项之一。
因此,在发出请求的代码中,您应该能够在请求正文中提供 JSON,其中包含 ”block_ip”: false。
例如:
{
delete_posts: false,
block_email: false,
block_urls: false,
block_ip: false,
}
我不确定我是否理解了。
您的意思是,在账户删除后,我需要通过 API 来解除 IP 阻止吗?
我实际上是希望能有一个 Discourse 的配置开关。
好的,明白了。谢谢,我会试试这个。
你好
你在这里得到答案了吗?因为在我的例子中,“block_ip”: false 在 API 请求体中不起作用,所以你是否成功了,或者你是否通过逆向工程 Discourse 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应该防止电子邮件被加入到筛选电子邮件中,然而 **一些极端情况(如被标记为垃圾邮件的用户或TL0新用户)**仍可能触发电子邮件筛查 即使block_email为False。
这需要额外的请求才能从筛选电子邮件中解除对电子邮件的屏蔽。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.