Alternativen zur OAuth2-HTTP-Methode
QtNetworkAuth bietet HTTP-Methoden wie QAbstractOAuth::get() für die Ausstellung von authentifizierten Anfragen. Im Falle von OAuth2 bedeutet dies in der Regel das Setzen des Authorization Headers, wie in RFC 6750 beschrieben.
Da dieser Vorgang einfach zu bewerkstelligen ist, ist es besser, die normalen QtNetwork HTTP-Methoden-APIs direkt zu verwenden und diesen Header manuell zu setzen. Diese QtNetwork APIs haben weniger Annahmen über die Nachrichtentypen und bieten einen breiteren Satz von APIs.
Siehe QRestAccessManager, QNetworkAccessManager, QNetworkRequest, QNetworkRequestFactory.
QNetworkRequest
Der erforderliche Authorization-Header kann direkt bei jeder Anfrage, die eine Autorisierung benötigt, gesetzt werden.
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);
Nachdem Sie den Header gesetzt haben, verwenden Sie die Anfrage normalerweise entweder mit QRestAccessManager oder QNetworkAccessManager.
QNetworkRequestFactory
QNetworkRequestFactory ist eine Komfortklasse, die in Qt 6.7 eingeführt wurde. Sie bietet eine geeignete Methode für diese Aufgabe: QNetworkRequestFactory::setBearerToken(), wie der folgende Code zeigt.
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()); });
Nachdem Sie das Überbringer-Token gesetzt haben, verwenden Sie die Request-Factory normalerweise entweder mit QRestAccessManager oder QNetworkAccessManager.
© 2025 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.