DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Gestion du protocole OAuth 2.0
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
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 = TokenSession.RenouvelleToken()
			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> = <Token>.RenouvelleToken()
<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 : 13/09/2024

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