|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Connexion oAuth2 sur un webservice avec authentification Okta |
| Débuté par Roumeg, 29 nov. 2025 14:38 - 1 réponse |
| |
| | | |
|
| |
Membre enregistré 157 messages |
|
| Posté le 29 novembre 2025 - 14:38 |
Bonjour,
auriez vous un code exemple pour vous connecter à un webservice avec authentification Okta ? Il y a bien un projet exemple pour se connecter à une api google ou windows avec une connexion oAuth2 mais suffit-il d'adapter ces classes juste en changeant les clientid, secret et l'url ?
et j'ai une autre question, si je charge les spec de cette api; on me donne un fichier yaml. Une fois intégré comme une description externe, je n'en vois pas comment l'utiliser comme on pouvait avoir avec les description json. Bon si je prends un de mes propres webservices, je vois que je peux exporter en openAPI et cela me crée un fichier yaml aussi.
je verrais ça ensuite mais déjà si je pouvais effectuer cette connexion oAuth à okta, ce serait bien. Merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 157 messages |
|
| Posté le 29 novembre 2025 - 17:44 |
Bonjour bon aidé de mon pote chatgpt, j'ai réussi à faire ce code. Si cela peut servir à d'autres ...
FUNCTION v2GetoAuth2Token(sTokenURL est une chaîne, sClientID est une chaîne, sClientSecret est une chaîne) : chaîne
cReq est un restRequête cRep est un restRéponse sContenu est une chaîne vJSON est un Variant sTokenOut est une chaîne = ""
cReq.Méthode = httpPost cReq.URL = sTokenURL
cReq.User = sClientID cReq.Password = sClientSecret
cReq.Entête["Content-Type"] = "application/x-www-form-urlencoded"
cReq.Contenu = ChaîneVersUTF8("grant_type=client_credentials")
cRep = RESTEnvoie(cReq)
SI ErreurDétectée() ALORS Info("Erreur RESTEnvoie : " + ErreurInfo(errComplet)) RENVOYER "" FIN
sContenu = cRep.Contenu
SI sContenu = "" ALORS Info("Réponse vide du serveur OAuth2 : " + cRep.CodeEtat) RENVOYER "" FIN
vJSON = JSONVersVariant(sContenu)
SI vJSON.access_token..Existe ALORS sTokenOut = vJSON.access_token SINON Info("Pas de champ 'access_token' dans la réponse : " + CR + sContenu) RENVOYER "" FIN
RENVOYER sTokenOut
et ensuite qd on appelle son point d'accès
restreq est un restRequête restRéponse est un restRéponse contenujson est une chaîne contenu est un Variant
wsUrl est une chaîne wsUrl="https://xxxx/xxxx/xxxxx/search" restreq..Méthode = httpGet restreq..URL = wsUrl restreq..ContentType = "application/json" restreq.Entête["Authorization"] = "Bearer "+gToken restreq.Entête["Accept"] = "application/json"
restRéponse = RESTEnvoie(restreq) SI ErreurDétectée() ALORS Info("Erreur RESTEnvoie : " + ErreurInfo(errComplet)) SINON contenujson=restRéponse..Contenu contenu=JSONVersVariant(contenujson) FIN |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|