|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| AuthIdentifie - Le client ID présente un / |
| Débuté par ErRod, 30 avr. 2025 11:23 - 1 réponse |
| |
| | | |
|
| |
Membre enregistré 2 messages |
|
| Posté le 30 avril 2025 - 11:23 |
Bonjour,
Je cherche aujourd'hui à m'interfacer avec une API (Sage) via le protocole OAuth2.0
Il se trouve que le Client ID que me fournit Sage possède un / au milieu de la chaine ex : a30eb717-3949-xxxx-6dc7-15bxxxxxx302/e98a7717-05ff-47eb-xxxx-751xxxx0645c
Quand j'appelle AuthIdentifie sans convertir le client ID au préalable, le / est conservé et forcément l'URL devient invalide.
Lorsque je converti manuellement le Client ID en remplaçant le / par %2F, le % est remplacé par %25 ce qui rend une nouvelle fois l'URL invalide.
J'ai essayé différents types d'encodage et rien ne fait, le client ID utilisé dans l'URL de la première requête n'est jamais au bon format.
J'ai comparé les URL entre Postman (ou cela fonctionne) et AuthIdentifie et le problème se situe uniquement sur ce caractère (l'URL de redirection est pourtant bien encodée via Windev).
Quelqu'un a t'il une astuce?
Merci, Cordialement ErRod |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 messages |
|
| Posté le 01 mai 2025 - 08:44 |
J'ai essayé aussi de ne pas ajouter le paramètre Client ID et de l'intégrer manuellement dans l'URL Auth
Voici mon code
OAuth2Params est un OAuth2Paramètres sClientID est une chaîne = "a30eb717-3949-c303-xxxx-15b1cbcxxx02%2Fe98a7717-xxxx-47eb-91f0-751xxx40645c"
sClientSecret est une chaîne = "xxxxxxxxxxxxxx"
OAuth2Params.ClientSecret = sClientSecret OAuth2Params.URLAuth = "https://www.sageone.com/oauth2/auth/central?filter=apiv3.1&client_id="+sClientID OAuth2Params.URLToken = "https://oauth.accounting.sage.com/token" OAuth2Params.TypeRéponse = ""
sTemp est une chaîne = URLEncode(URLEncode("http://localhost:9874/",encodeURLDepuisAnsi),encodeURLParamètre) OAuth2Params.URLRedirection = sTemp
MonToken est un AuthToken = AuthIdentifie(OAuth2Params)
De cette manière le client ID apparaît bien au bon format mais cette fois Windev ajoute les autres paramètres de l'URL en commençant par un ? ce qui rend une nouvelle fois l'URL invalide. Et certains paramètres comme le response_type et le state sont ajoutés automatiquement (même en les positionnant à vide dans l'objet OAuthparamètres).
La fonction AuthIdentifie me semble quelque peu inflexible, ca fonctionne bien avec certaines API mais dés qu'il y a une variation minime, on ne peut contourner les automatismes parfois incohérents de Windev.
Si quelqu'un a trouver un moyen de contourner ces problématiques je suis preneur, sans quoi je vais devoir procéder manuellement et dire à mon client qu'il devra lui même hoster une page Web de redirection.
Merci, |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|