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> ¶meters = {}) |
| void | requestAccessToken(const QString &code) |
Fonctions protégées réimplémentées
| virtual void | resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters = {}) 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.
| Constante | Valeur | Description |
|---|---|---|
QOAuth2AuthorizationCodeFlow::PkceMethod::None | 255 | PKCE 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::Plain | 1 | La 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::S256 | 0 | La 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> ¶meters = {})
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> ¶meters = {})
Réimplémentation de : QAbstractOAuth::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters).
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.