如何通过 API 注销用户

当我尝试通过 API 登出用户时,但没有成功。

我阅读了 SSO Logout via Master API Key isn't working - #2 by simon

我的 httpclient 在标头中设置了用户名和 api 密钥,它适用于其他操作,例如按外部 ID 获取用户或执行其他操作。

我是否还需要将 api-key 和 api-username 也发送到正文中。

我的用户通过 sso 登录,当我从 discourse 的管理员页面登出用户时,它会起作用。

这是我尝试调用它的部分代码

var formData = new FormUrlEncodedContent(new
{
new KeyValuePair<string, string>(“username_or_email”, user.user.username)
});
var response = await _httpClient.PostAsync($“/admin/users/{user.user.id}/log_out”, formData);
var content = await response.Content.ReadAsStringAsync();

响应返回 200 代码,但内容是网页而不是 {Succes: “OK” }

抱歉打扰了。

问题是我的开发环境指向了 discourse 的 http 而不是 https 实例。

当我切换到 https 端点时,它就开始工作了。

我感到困惑,因为一些 api 端点可以通过 http 工作,但这个不行。

供未来的读者参考,这是我如何通过 C# 退出用户:

             var url = $\"/admin/users/{user.user.id}/log_out\";
            using var formData = new MultipartFormDataContent{
{ new StringContent(_forumConfigModel.ApiKey), “api_key” },
{ new StringContent(_forumConfigModel.User), “api_username” }
};

var response = await _httpClient.PostAsync(url, formData);
2 个赞