Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[v17] Content-Type à application/json, obligatoire #3441

Closed
GerardPaligot opened this issue Mar 12, 2016 · 8 comments
Closed

[v17] Content-Type à application/json, obligatoire #3441

GerardPaligot opened this issue Mar 12, 2016 · 8 comments
Labels
C-API Concerne une API du site C-Docs Concerne la documentation Facile Bon ticket pour débuter pour rejoindre le développement !

Comments

@GerardPaligot
Copy link
Member

Serveur : Prod
Version : v17-haïku/8cb7666
Système : OS X
Navigateur : Google Chrome Version 48.0.2564.116 (64-bit)

Prérequis : Des clés d'API.

Scénario :

  1. Avec vos clés d'API, tentez de vous connectez. (documentation pour récupérer ses clés d'authentification)
  2. Constatez que la réponse du serveur est la suivante :
{
  "error": "unsupported_grant_type"
}
@GerardPaligot GerardPaligot added S-Régression Corrige un problème sur un composant qui fonctionnait auparavant Bloquant Ticket qui doit être traité avant la prochaine mise à jour C-API Concerne une API du site labels Mar 12, 2016
@GerardPaligot
Copy link
Member Author

Bien, après quelques recherches, je vais nuancer.

Il est possible de se logguer mais uniquement quand on spécifie un Content-Type à application/json. Sinon, notre backend n'est pas capable de récupérer le grant_type spécifié dans la requête.

Ce n'est plus bloquant mais c'est gênant. Encore plus quand on sait que le backend que nous spécifions, JSONOAuthLibCore, comporte des incompatibilités avec DRF.

@GerardPaligot GerardPaligot changed the title [v17] Impossible de se logger à partir de l'API [v17] Content-Type à application/json, obligatoire Mar 12, 2016
@GerardPaligot GerardPaligot removed the Bloquant Ticket qui doit être traité avant la prochaine mise à jour label Mar 12, 2016
@firm1
Copy link
Contributor

firm1 commented Mar 14, 2016

De mon coté, je n'arrive pas à accéder à mon token avec ou sans le content-type. Que je sois sur une console REST depuis mon navigateur ou via curl.

Voici la liste de mes essais (logiquement c'est l'essai N° 2 qui devrait fonctionner).

curl -H "Content-Type: application/json" -X POST -d "client_id=<mon_id>&client_secret=<mon_secret>&grant_type=password&username=firm1&password=<mon_mot_de_passe>" https://zestedesavoir.com/oauth2/token/
curl -H "Content-Type: application/x-www-form-urlencoded" -X POST -d "client_id=<mon_id>&client_secret=<mon_secret>&grant_type=password&username=firm1&password=<mon_mot_de_passe>" https://zestedesavoir.com/oauth2/token/
curl -X POST -d "client_id=<mon_id>&client_secret=<mon_secret>&grant_type=password&username=firm1&password=<mon_mot_de_passe>" https://zestedesavoir.com/oauth2/token/

Toujours le même message d'erreur : "error": "unsupported_grant_type".

Du coup j'aimerai bien savoir comment tu arrives à te connecter.

@GerardPaligot
Copy link
Member Author

Le contenu de ta première requête n'est pas en JSON. :)

@firm1
Copy link
Contributor

firm1 commented Mar 14, 2016

Ouais mais j'ai aussi essayé la premiere requete avec le contenu en json sans succès non plus. D'ou ma question

@GerardPaligot
Copy link
Member Author

Voici une requête curl possible :

curl -X POST -H "Content-Type: application/json" -d '{
    "username": "admin",
    "password": "admin",
    "grant_type": "password",
    "client_id": "CLIENT_ID",
    "client_secret": "CLIENT_SECRET"
}' "http://localhost:8000/oauth2/token/"

Je viens de tester en local et ça passe. :)

@firm1
Copy link
Contributor

firm1 commented Mar 15, 2016

J'ai compris, on ne peut pas simplement remplacer les doubles quotes par des quotes simples en json et donc mon format n'était pas valide.

Merci de ton coup de main

@DevHugo
Copy link
Contributor

DevHugo commented Nov 27, 2016

Quelques remarques:

  • La commande suivante passe sans probléme, on n'a plus vraiment besoin du header "content-type".
curl -X POST -d '{
    "username": "admin",
    "password": "admin",
    "grant_type": "password",
    "client_id": "CLIENT_ID",
    "client_secret": "CLIENT_SECRET"
}' "http://localhost:8000/oauth2/token/"

MAIS si on exécute la requête suivante donnée par la documentation qui est incorrecte: curl -X POST -d "client_id=CLIENT_ID&client_secret=SECRET_ID&grant_type=password&username=admin&password=admin" https://zestedesavoir.com/oauth2/token/, on obtient {"error": "unsupported_grant_type"}.

Du coup, une question se pose, retourner l'erreur {"error": "unsupported_grant_type"} est t-il suffisant ?

De toute les manières, il faut corriger la documentation.

@gustavi gustavi added the C-Docs Concerne la documentation label Jun 4, 2017
@artragis artragis added Facile Bon ticket pour débuter pour rejoindre le développement ! and removed S-Régression Corrige un problème sur un composant qui fonctionnait auparavant labels Jun 13, 2019
@philippemilink
Copy link
Member

La situation décrite dans le message précédent est toujours la même (fonctionne avec avec formatage des paramètres type JSON, mais pas avec un formatage "inline"). Cependant, je ne vois pas qu'est-ce qu'il faut corriger dans la documentation, c'est déjà la première commande (correcte) qui est dans la doc.

Issue à fermer ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-API Concerne une API du site C-Docs Concerne la documentation Facile Bon ticket pour débuter pour rejoindre le développement !
Projects
None yet
Development

No branches or pull requests

6 participants