Sur cette page

QOAuth2AuthorizationCodeFlow Class

La classe `QOAuth2AuthorizationCodeFlow` fournit une implémentation du flux d'autorisation par code d'autorisation. En savoir plus...

En-tête : #include <QOAuth2AuthorizationCodeFlow>
CMake : find_package(Qt6 REQUIRED COMPONENTS NetworkAuth)
target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth)
qmake : QT += networkauth
Hérite de : QAbstractOAuth2

Types publics

(since 6.8) enum class PkceMethod { None, Plain, S256 }

Fonctions publiques

QOAuth2AuthorizationCodeFlow(QObject *parent = nullptr)
QOAuth2AuthorizationCodeFlow(QNetworkAccessManager *manager, QObject *parent = nullptr)
QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, QNetworkAccessManager *manager, QObject *parent = nullptr)
QOAuth2AuthorizationCodeFlow(const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)
QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)
virtual ~QOAuth2AuthorizationCodeFlow()
(until 6.13) QUrl accessTokenUrl() const
(since 6.8) QOAuth2AuthorizationCodeFlow::PkceMethod pkceMethod() const
(until 6.13) void setAccessTokenUrl(const QUrl &accessTokenUrl)
(since 6.8) void setPkceMethod(QOAuth2AuthorizationCodeFlow::PkceMethod method, qsizetype length = 43)

Slots publics

virtual void grant() override
(until 6.13) void refreshAccessToken()

Fonctions protégées

QUrl buildAuthenticateUrl(const QMultiMap<QString, QVariant> &parameters = {})
void requestAccessToken(const QString &code)

Fonctions protégées réimplémentées

virtual void resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> &parameters = {}) override

Slots protégés

(since 6.9) void refreshTokensImplementation()

Description détaillée

Cette classe implémente le flux d'autorisation par code (Authorization Code Grant), qui sert à la fois à obtenir et à actualiser des jetons d'accès. Il s'agit d'un flux basé sur la redirection ; l'utilisateur devra donc disposer d'un navigateur Web.

Comme il s'agit d'un flux basé sur la redirection, cette classe nécessite la configuration d'un gestionnaire de réponse approprié. Voir la présentation d'OAuth 2.0, QOAuthHttpServerReplyHandler et QOAuthUriSchemeReplyHandler.

Documentation sur les types de membres

[since 6.8] enum class QOAuth2AuthorizationCodeFlow::PkceMethod

Liste des méthodes PKCE (Proof Key for Code Exchange) disponibles.

Le PKCE est une mesure de sécurité visant à atténuer le risque d'attaques par interception du code d'autorisation. À ce titre, il s'applique au flux « Code d'autorisation » (grant) d'OAuth2, en particulier avec les applications natives.

Le PKCE insère des paramètres supplémentaires dans les requêtes de jeton d’autorisation et d’accès. Grâce à ces paramètres, le serveur d’autorisation est en mesure de vérifier qu’une requête de jeton d’accès provient bien de la même entité que celle qui a émis la requête d’autorisation.

ConstanteValeurDescription
QOAuth2AuthorizationCodeFlow::PkceMethod::None255PKCE n’est pas utilisé. Le flux reste alors sans protection contre l’interception du code d’autorisation. N’utilisez cette option que si le serveur d’autorisation ne prend pas en charge PKCE.
QOAuth2AuthorizationCodeFlow::PkceMethod::Plain1La méthode PKCE « Plain » est utilisée. À n’utiliser que s’il n’est pas possible d’utiliser S256. Avec la méthode « Plain », le code de défi est identique au code de vérification, ce qui expose ce dernier à toute personne capable d’intercepter la requête d’autorisation.
QOAuth2AuthorizationCodeFlow::PkceMethod::S2560La méthode S256 PKCE est utilisée. Il s’agit de la méthode par défaut et recommandée pour les applications natives. Avec la méthode S256, le code de défi est une valeur encodée en base64url correspondant au SHA-256 du code de vérification.

Cette énumération a été introduite dans Qt 6.8.

Voir également setPkceMethod() et pkceMethod().

Documentation des fonctions membres

[explicit] QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(QObject *parent = nullptr)

Crée un objet `QOAuth2AuthorizationCodeFlow` dont l'objet parent est ` parent`.

[explicit] QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(QNetworkAccessManager *manager, QObject *parent = nullptr)

Crée un objet `QOAuth2AuthorizationCodeFlow` en utilisant ` parent ` comme objet parent et définit ` manager ` comme gestionnaire d'accès au réseau.

QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, QNetworkAccessManager *manager, QObject *parent = nullptr)

Crée un objet `QOAuth2AuthorizationCodeFlow` en utilisant ` parent ` comme parent et définit ` manager ` comme gestionnaire d'accès au réseau. L'identifiant du client est défini sur ` clientIdentifier`.

QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)

Crée un objet `QOAuth2AuthorizationCodeFlow` en utilisant ` parent ` comme parent et définit ` manager ` comme gestionnaire d'accès au réseau. L'URL d'authentification est définie sur ` authenticateUrl ` et l'URL du jeton d'accès sur ` accessTokenUrl`.

QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)

Crée un objet `QOAuth2AuthorizationCodeFlow` en utilisant ` parent ` comme parent et définit ` manager ` comme gestionnaire d'accès réseau. L'identifiant du client est défini sur ` clientIdentifier `, l'URL d'authentification sur ` authenticateUrl ` et l'URL du jeton d'accès sur ` accessTokenUrl`.

[virtual noexcept] QOAuth2AuthorizationCodeFlow::~QOAuth2AuthorizationCodeFlow()

Supprime l'instance de ` QOAuth2AuthorizationCodeFlow `.

[until 6.13] QUrl QOAuth2AuthorizationCodeFlow::accessTokenUrl() const

Cette fonction sera obsolète à partir de la version 6.13.

Utilisez plutôt ` QAbstractOAuth2::tokenUrl()`.

Renvoie l'URL utilisée pour demander le jeton d'accès.

Voir également setAccessTokenUrl().

[protected] QUrl QOAuth2AuthorizationCodeFlow::buildAuthenticateUrl(const QMultiMap<QString, QVariant> &parameters = {})

Génère une URL d'authentification à utiliser dans la requête d'autorisation à l'aide de parameters.

[override virtual slot] void QOAuth2AuthorizationCodeFlow::grant()

Réimplémente : QAbstractOAuth::grant().

Lance le processus d'authentification tel que décrit dans le cadre d'autorisation OAuth 2.0

[noexcept, since 6.8] QOAuth2AuthorizationCodeFlow::PkceMethod QOAuth2AuthorizationCodeFlow::pkceMethod() const

Renvoie la méthode PKCE actuelle.

Cette fonction a été introduite dans Qt 6.8.

Voir également setPkceMethod() et QOAuth2AuthorizationCodeFlow::PkceMethod.

[slot, until 6.13] void QOAuth2AuthorizationCodeFlow::refreshAccessToken()

Cette fonction sera obsolète à partir de la version 6.13.

Utilisez plutôt QAbstractOAuth2::refreshTokens().

Appelez cette fonction pour actualiser le jeton.

Cette fonction appelle la fonction refreshTokensImplementation().

[protected slot, since 6.9] void QOAuth2AuthorizationCodeFlow::refreshTokensImplementation()

Cette fonction envoie une requête d'actualisation du jeton.

Si la demande de rafraîchissement a été lancée avec succès, l'état est défini sur « QAbstractOAuth::Status::RefreshingToken » ; dans le cas contraire, le signal « requestFailed()» est émis et l'état n'est pas modifié.

Cette fonction n’a aucun effet si le processus d’actualisation du jeton est déjà en cours.

Si l'actualisation du jeton échoue et qu'un jeton d'accès existe, l'état est défini sur « QAbstractOAuth::Status::Granted » ; s'il n'existe pas, il est défini sur « QAbstractOAuth::Status::NotAuthenticated ».

Cette fonction a été introduite dans Qt 6.9.

Voir également QAbstractOAuth::requestFailed() et QAbstractOAuth2::refreshTokens().

[protected] void QOAuth2AuthorizationCodeFlow::requestAccessToken(const QString &code)

Demande un jeton d'accès à partir de l'code reçu. L'code est reçu en réponse lorsque l'utilisateur a réussi son authentification dans le navigateur.

[override virtual protected] void QOAuth2AuthorizationCodeFlow::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> &parameters = {})

Réimplémentation de : QAbstractOAuth::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> &parameters).

Construit une URL d'authentification à l'aide de url et parameters. Cette fonction émet un signal authorizeWithBrowser() pour demander une interaction de l'utilisateur.

[until 6.13] void QOAuth2AuthorizationCodeFlow::setAccessTokenUrl(const QUrl &accessTokenUrl)

Cette fonction sera obsolète à partir de la version 6.13.

Utilisez plutôt QAbstractOAuth2::setTokenUrl() .

Définit l'URL utilisée pour demander le jeton d'accès sur accessTokenUrl.

Voir également accessTokenUrl().

[since 6.8] void QOAuth2AuthorizationCodeFlow::setPkceMethod(QOAuth2AuthorizationCodeFlow::PkceMethod method, qsizetype length = 43)

Définit la méthode PKCE actuelle sur « method ».

En option, le paramètre « length » peut être utilisé pour définir la longueur du « code_verifier ». La valeur doit être comprise entre 43 et 128 octets. Le « code verifier » lui-même est généré de manière aléatoire par la bibliothèque.

Définir method sur PkceMethod::None ou PkceMethod::Plain affaiblit la protection contre l’interception du code d’autorisation.

Cette fonction a été introduite dans Qt 6.8.

Voir également pkceMethod() et QOAuth2AuthorizationCodeFlow::PkceMethod.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.