J’essaie de créer un exemple de code pour la déconnexion.
Le DNS de mon site est ‘aaa.com’ et l’ID utilisateur est ‘1’.
J’ai créé l’URL et envoyé la requête comme ceci :
-post AAA Sorry Page
J’ai également envoyé l’en-tête avec api-key, api-Username.
Mais j’ai reçu la réponse “Oops ! Cette page n’existe pas ou est privée.”
Je n’arrive pas à déconnecter un utilisateur en utilisant le point de terminaison de l’API /admin/users/{USER_ID}/log_out.json
Je récupère avec succès l’USER_ID de Discourse avec le code suivant : /u/by-external/${user.id}.json.
Je récupère également des données en accédant à d’autres points de terminaison de l’API, donc je suis satisfait de la clé API et de la mécanique autour de ma requête.
…j’obtiens un statut 404 avec l’objet de retour suivant :
{
errors: [ 'The requested URL or resource could not be found.' ],
error_type: 'not_found'
}
J’ai réussi à implémenter le SSO sans trop de difficultés. Tout éclaircissement sur la raison pour laquelle la déconnexion pourrait ne pas fonctionner serait apprécié.
Oui, dans le cas de test, c’est 1 (obtenu à partir d’un appel à /u/by-external/${user.id}.json). J’ai également essayé de coder la valeur en dur, juste pour vérifier… même résultat.
Une façon de reproduire le message d’erreur 404 est d’utiliser un identifiant d’utilisateur invalide. Pouvez-vous d’abord vérifier que vous pouvez récupérer l’utilisateur par identifiant ?
…j’obtiens une réponse 200, suggérant que l’utilisateur 1 (moi) devrait être déconnecté du forum, mais quand je vérifie, je n’ai pas été réellement déconnecté - c’est le premier problème.
Le deuxième problème est que l’envoi de la même requête depuis le backend de mon application à l’aide d’axios (détaillé ci-dessus) aboutit à un 404… très étrange.
Edit : Le premier problème n’en est pas un - la requête cURL me déconnecte avec succès - il faut maintenant comprendre pourquoi la requête POST axios me renvoie un 404.
Il s’avère que ma requête axios n’était pas formatée correctement ! Comme je n’envoie pas de corps dans la requête POST, j’aurais dû passer un objet vide avec la requête.
Merci pour l’orientation concernant les requêtes curl @blake - c’est ce qui m’a finalement permis de résoudre le problème.
J’ai essayé de me déconnecter du forum avec l’API POST ‘admin/users/{user_id}/log_out.json’ mais cela renvoie Oops ! Cette page n’existe pas ou est privée.
J’ai fourni api_key et api-username dans les en-têtes. Quelqu’un a-t-il rencontré le même problème ?
Je me suis déconnecté avec succès via l’API en envoyant une requête POST à /admin/users/1/log_out.json.
Corps vide, en-têtes contenant un Api-Username administrateur et une Api-Key avec une portée globale ou une portée granulaire avec la capacité de déconnexion cochée.