QOAuth2AuthorizationCodeFlow Class
La clase QOAuth2AuthorizationCodeFlow proporciona una implementación del flujo de concesión de código de autorización. Más...
| Cabecera: | #include <QOAuth2AuthorizationCodeFlow> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS NetworkAuth)target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth) |
| qmake: | QT += networkauth |
| Hereda: | QAbstractOAuth2 |
Tipos Públicos
(since 6.8) enum class | PkceMethod { None, Plain, S256 } |
Funciones Públicas
| 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) |
Ranuras públicas
| virtual void | grant() override |
(until 6.13) void | refreshAccessToken() |
Funciones protegidas
| QUrl | buildAuthenticateUrl(const QMultiMap<QString, QVariant> ¶meters = {}) |
| void | requestAccessToken(const QString &code) |
Funciones protegidas reimplementadas
| virtual void | resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters = {}) override |
Ranuras protegidas
(since 6.9) void | refreshTokensImplementation() |
Descripción detallada
Esta clase implementa el flujo Authorization Code Grant, que se utiliza tanto para obtener como para refrescar los tokens de acceso. Es un flujo basado en la redirección, por lo que el usuario necesitará acceso a un navegador web.
Como flujo basado en la redirección, esta clase requiere que se establezca un controlador de respuesta adecuado. Ver OAuth 2.0 Overview, QOAuthHttpServerReplyHandler, y QOAuthUriSchemeReplyHandler.
Documentación de tipos de miembros
[since 6.8] enum class QOAuth2AuthorizationCodeFlow::PkceMethod
Lista de métodos disponibles de Prueba de Clave para el Intercambio de Códigos (PKCE).
PKCE es una medida de seguridad para mitigar el riesgo de ataques de interceptación de código de autorización. Como tal, es relevante para el flujo de "Código de Autorización" de OAuth2 (concesión) y en particular con aplicaciones nativas.
PKCE inserta parámetros adicionales en las solicitudes de autorización y token de acceso. Con la ayuda de estos parámetros, el servidor de autorización es capaz de verificar que una solicitud de token de acceso se origina en la misma entidad que emitió la solicitud de autorización.
| Constante | Valor | Descripción |
|---|---|---|
QOAuth2AuthorizationCodeFlow::PkceMethod::None | 255 | No se utiliza PKCE. |
QOAuth2AuthorizationCodeFlow::PkceMethod::Plain | 1 | Se utiliza el método PKCE simple. Utilícelo sólo si no es posible utilizar S256. Con el método Plain el desafío de código es igual al verificador de código. |
QOAuth2AuthorizationCodeFlow::PkceMethod::S256 | 0 | Se utiliza el método S256 PKCE. Este es el método por defecto y el recomendado para aplicaciones nativas. Con el método S256 el desafío de código es un valor codificado en base64url del SHA-256 del verificador de código. |
Este enum se introdujo en Qt 6.8.
Véase también setPkceMethod() y pkceMethod().
Documentación de las funciones miembro
[explicit] QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(QObject *parent = nullptr)
Construye un objeto QOAuth2AuthorizationCodeFlow con el objeto padre parent.
[explicit] QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(QNetworkAccessManager *manager, QObject *parent = nullptr)
Construye un objeto QOAuth2AuthorizationCodeFlow utilizando parent como padre y establece manager como gestor de acceso a la red.
QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, QNetworkAccessManager *manager, QObject *parent = nullptr)
Construye un objeto QOAuth2AuthorizationCodeFlow utilizando parent como padre y establece manager como gestor de acceso a la red. El identificador de cliente se establece en clientIdentifier.
QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)
Construye un objeto QOAuth2AuthorizationCodeFlow utilizando parent como padre y establece manager como gestor de acceso a la red. La URL de autenticación se establece en authenticateUrl y la URL del token de acceso en accessTokenUrl.
QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)
Construye un objeto QOAuth2AuthorizationCodeFlow utilizando parent como padre y establece manager como gestor de acceso a la red. El identificador del cliente se establece en clientIdentifier, la URL de autenticación se establece en authenticateUrl y la URL del token de acceso se establece en accessTokenUrl.
[virtual noexcept] QOAuth2AuthorizationCodeFlow::~QOAuth2AuthorizationCodeFlow()
Destruye la instancia QOAuth2AuthorizationCodeFlow.
[until 6.13] QUrl QOAuth2AuthorizationCodeFlow::accessTokenUrl() const
Esta función quedará obsoleta en la versión 6.13.
Utilice QAbstractOAuth2::tokenUrl() en su lugar.
Devuelve la URL utilizada para solicitar el token de acceso.
Véase también setAccessTokenUrl().
[protected] QUrl QOAuth2AuthorizationCodeFlow::buildAuthenticateUrl(const QMultiMap<QString, QVariant> ¶meters = {})
Genera una URL de autenticación que se utilizará en la solicitud de autorización mediante parameters.
[override virtual slot] void QOAuth2AuthorizationCodeFlow::grant()
Reimplementa: QAbstractOAuth::grant().
Inicia el flujo de autenticación tal y como se describe en The OAuth 2.0 Authorization Framework.
[noexcept, since 6.8] QOAuth2AuthorizationCodeFlow::PkceMethod QOAuth2AuthorizationCodeFlow::pkceMethod() const
Devuelve el método PKCE actual.
Esta función se introdujo en Qt 6.8.
Véase también setPkceMethod() y QOAuth2AuthorizationCodeFlow::PkceMethod.
[slot, until 6.13] void QOAuth2AuthorizationCodeFlow::refreshAccessToken()
Esta función quedará obsoleta en la versión 6.13.
Utilice QAbstractOAuth2::refreshTokens() en su lugar.
Llama a esta función para actualizar el token.
Esta función llama a refreshTokensImplementation().
[protected slot, since 6.9] void QOAuth2AuthorizationCodeFlow::refreshTokensImplementation()
Esta función envía una solicitud de actualización de token.
Si la solicitud de actualización se inició con éxito, el estado se establece en QAbstractOAuth::Status::RefreshingToken; de lo contrario, se emite la señal requestFailed() y el estado no cambia.
Esta función no tiene ningún efecto si el proceso de actualización del testigo ya está en curso.
Si la actualización del token falla y existe un token de acceso, el estado se establece en QAbstractOAuth::Status::Granted, y en QAbstractOAuth::Status::NotAuthenticated si no existe un token de acceso.
Esta función se introdujo en Qt 6.9.
Véase también QAbstractOAuth::requestFailed() y QAbstractOAuth2::refreshTokens().
[protected] void QOAuth2AuthorizationCodeFlow::requestAccessToken(const QString &code)
Solicita un token de acceso al code recibido. El code se recibe como respuesta cuando el usuario completa una autenticación satisfactoria en el navegador.
[override virtual protected] void QOAuth2AuthorizationCodeFlow::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters = {})
Reimplementa: QAbstractOAuth::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters).
Construye una URL de autenticación usando url y parameters. Esta función emite una señal authorizeWithBrowser() para requerir la interacción del usuario.
[until 6.13] void QOAuth2AuthorizationCodeFlow::setAccessTokenUrl(const QUrl &accessTokenUrl)
Esta función quedará obsoleta en la versión 6.13.
Utilice QAbstractOAuth2::setTokenUrl() en su lugar.
Establece la URL utilizada para solicitar el token de acceso a accessTokenUrl.
Véase también accessTokenUrl().
[since 6.8] void QOAuth2AuthorizationCodeFlow::setPkceMethod(QOAuth2AuthorizationCodeFlow::PkceMethod method, qsizetype length = 43)
Establece el método PKCE actual en method.
Opcionalmente, se puede utilizar el parámetro length para establecer la longitud de code_verifier. El valor debe estar entre 43 y 128 bytes. El propio "verificador de código" es generado aleatoriamente por la biblioteca.
Esta función se introdujo en Qt 6.8.
Véase también pkceMethod() y 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.