Auf dieser Seite

Alternativen zu OAuth2-HTTP-Methoden

QtNetworkAuth bietet HTTP-Methoden wie QAbstractOAuth::get() für die Übermittlung authentifizierter Anfragen. Im Falle von OAuth2 bedeutet dies in der Regel das Setzen des Headers „ Authorization “, wie in RFC 6750 festgelegt.

Da dieser Vorgang unkompliziert ist, empfiehlt es sich, direkt die normalen „ QtNetwork “-HTTP-Methoden-APIs zu verwenden und diesen Header manuell zu setzen. Diese „ QtNetwork “-APIs stellen weniger Anforderungen an die Inhaltstypen der Nachrichten und bieten einen breiteren Satz an APIs.

Siehe QRestAccessManager, QNetworkAccessManager, QNetworkRequest, QNetworkRequestFactory.

QNetworkRequest

Der erforderliche Authorization -Header kann direkt bei jeder Anfrage gesetzt werden, die eine Autorisierung erfordert.

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);

Nach dem Setzen des Headers verwenden Sie die Anfrage wie gewohnt entweder mit QRestAccessManager oder QNetworkAccessManager.

QNetworkRequestFactory

QNetworkRequestFactory ist eine in Qt 6.7 eingeführte Komfortklasse. Sie stellt eine geeignete Methode für diese Aufgabe bereit: ` QNetworkRequestFactory::setBearerToken()`, wie im folgenden Code gezeigt.

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 Bearer-Token gesetzt haben, verwenden Sie die Request-Factory wie gewohnt entweder mit ` QRestAccessManager ` oder ` 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.