DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Gestion du protocole OAuth 2.0
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Renouvelle un token OAuth2 d'un utilisateur si ce token est expiré.
Exemple
// Session OAuth
TokenSession est un AuthToken // Session OAuth
bufToken est un Buffer
sFichierPersistanceAuth est une chaîne = fRepDonnées() + [fSep] + "AuthSession.bin"
// Paramètres de connexion OAuth
m_Svc est un OAuth2Paramètres         // Service OAuth (Login)
m_Svc.ClientID = "mon_client_id"
m_Svc.ClientSecret = "123456-mon_client_secret-387854"
m_Svc.URLAuth = "https://api.serveur.com/connect/authorize"
m_Svc.URLToken = "https://api.serveur.com/connect/token"
m_Svc.Scope = "openid profile offline_access"
m_Svc.URLRedirection = "http://localhost:3333"

// ou
// m_Svc est un OpenIDParamètres // Service OAuth (Login)
// m_Svc.ClientID = "mon_client_id"
// m_Svc.ClientSecret = "123456-mon_client_secret-387854"
// m_Svc.URLConfiguration = "https://api.serveur.com/.well-known/openid-configuration"
// m_Svc.URLRedirection = "http://localhost:3333"

// Token précédemment mémorisé ?
SI fFichierExiste(sFichierPersistanceAuth) ALORS
QUAND EXCEPTION DANS
// Charge la session
bufToken = fChargeBuffer(sFichierPersistanceAuth)
Désérialise(TokenSession, bufToken, psdBinaire)             
FAIRE
// Erreur de relecture du token
ToastAffiche("Session mémorisée invalide")
SINON
// Token est expiré ou va expirer dans la minute qui arrive
// et il est renouvelable ?
SI (TokenSession.DateExpiration-1 min < DateHeureSys()) _ET_ 
TokenSession.Actualisation <> "" ALORS
TokenSession = AuthRenouvelleToken(TokenSession)
SI TokenSession.Valide ALORS
Sérialise(TokenSession, bufToken, psdBinaire)
fSauveBuffer(sFichierPersistanceAuth, bufToken) 
SINON
Erreur("Echec du renouvellement de la session")
FIN
FIN 
FIN
FIN
SI PAS TokenSession.Valide ALORS
// Connexion au service
TokenSession = AuthIdentifie(m_Svc)    
SI TokenSession.Valide ALORS
// Sauvegarde du token
Sérialise(TokenSession, bufToken, psdBinaire)
fSauveBuffer(sFichierPersistanceAuth, bufToken)
FIN
FIN
SI PAS TokenSession.Valide ALORS
Erreur("Impossible de démarrer la session", ErreurInfo())
SINON
MonIdentité est une OpenIDIdentité = OpenIDLitIdentité(TokenSession)
SI MonIdentité.Valide ALORS
// Les informations récupérables sur l'identité de la personne connectée
// dépendent du site qui permet l’authentification
Info("Connexion OK : " + MonIdentité.Source)
SINON
Info("Connexion valide, mais échec identité ", ErreurInfo())
FIN
FIN
Syntaxe
<Résultat> = AuthRenouvelleToken(<Token>)
<Résultat> : Variable de type AuthToken
Variable de type AuthToken correspondant au token renouvelé.
<Token> : Variable de type AuthToken
Nom de la variable de type AuthToken correspondant au token à renouveler. Ce token est obtenu par exemple avec la fonction AuthIdentifie.
Remarques
Selon le token, il n'est pas toujours possible de le renouveler. La propriété Actualisation de la variable de type AuthToken permet de savoir si le token est renouvelable.
Composante : wd300ggl.dll
Version minimum requise
  • Version 26
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 07/09/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale