Comment déconnecter un utilisateur par API

Pendant que j’essaie de déconnecter l’utilisateur par API, mais sans succès,

J’ai lu SSO Logout via Master API Key isn't working - #2 by simon

Mon httpclient a défini le nom d’utilisateur et la clé API dans les en-têtes, et cela fonctionne pour d’autres opérations, par exemple, poster, obtenir un utilisateur par identifiant externe ou autre.

Dois-je également envoyer la clé API et le nom d’utilisateur API dans le corps.

Mes utilisateurs sont connectés par SSO, lorsque je déconnecte un utilisateur depuis la page d’administration sur Discourse, cela fonctionne.

Voici une partie du code sur la façon dont j’essaie de l’appeler

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();

La réponse renvoie un code 200 mais le contenu est une page Web et non {Succes: “OK” }

Mes excuses pour avoir ouvert un sujet.

Le problème était que ma configuration de développement pointait vers une instance http et non https de discourse.

Lorsque je suis passé au point de terminaison https, cela a commencé à fonctionner.

J’étais confus car certains points de terminaison d’API fonctionnaient sur http mais celui-ci ne fonctionnait pas.

Pour les futurs lecteurs, voici comment je déconnecte les utilisateurs par 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 « J'aime »