Alternativas al método HTTP OAuth2
QtNetworkAuth proporciona métodos HTTP como QAbstractOAuth::get() para emitir solicitudes autenticadas. En el caso de OAuth2, esto significa normalmente establecer la cabecera Authorization, como se especifica en RFC 6750.
Dado que esta operación es sencilla de realizar, es mejor utilizar directamente las API normales de métodos HTTP QtNetwork, y establecer esta cabecera manualmente. Estas APIs QtNetwork tienen menos suposiciones sobre los tipos de contenido de los mensajes y proporcionan un conjunto más amplio de APIs.
Consulte QRestAccessManager, QNetworkAccessManager, QNetworkRequest, QNetworkRequestFactory.
QNetworkRequest
La cabecera Authorization necesaria puede establecerse directamente en cada solicitud que necesite autorización.
using namespace Qt::StringLiterals; QOAuth2AuthorizationCodeFlow m_oauth; QNetworkRequest request; QHttpHeaders headers; headers.append(QHttpHeaders::WellKnownHeader::Authorization, u"Bearer "_s + m_oauth.token()); request.setHeaders(headers);
Después de configurar la cabecera, utilice la solicitud normalmente con QRestAccessManager o QNetworkAccessManager.
QNetworkRequestFactory
QNetworkRequestFactory es una clase de conveniencia introducida en Qt 6.7. Proporciona un método adecuado para esta tarea: QNetworkRequestFactory::setBearerToken(), como se ilustra en el código siguiente.
QNetworkRequestFactory m_api({"https://www.example.com/v3"}); QOAuth2AuthorizationCodeFlow m_oauth; // ... connect(&m_oauth, &QOAuth2AuthorizationCodeFlow::granted, this, [this]{ m_api.setBearerToken(m_oauth.token().toLatin1()); });
Después de configurar el token portador, utilice la fábrica de peticiones normalmente con QRestAccessManager o QNetworkAccessManager.
© 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.