QOAuth2AuthorizationCodeFlow Class
Die Klasse „QOAuth2AuthorizationCodeFlow“ stellt eine Implementierung des Authorization-Code-Grant-Ablaufs bereit. Mehr...
| Header: | #include <QOAuth2AuthorizationCodeFlow> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS NetworkAuth) target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth) |
| qmake: | QT += networkauth |
| Erbt von: | QAbstractOAuth2 |
Öffentliche Typen
(since 6.8) enum class | PkceMethod { None, Plain, S256 } |
Öffentliche Funktionen
| 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) |
Öffentliche Slots
| virtual void | grant() override |
(until 6.13) void | refreshAccessToken() |
Geschützte Funktionen
| QUrl | buildAuthenticateUrl(const QMultiMap<QString, QVariant> ¶meters = {}) |
| void | requestAccessToken(const QString &code) |
Neu implementierte geschützte Funktionen
| virtual void | resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters = {}) override |
Geschützte Slots
(since 6.9) void | refreshTokensImplementation() |
Ausführliche Beschreibung
Diese Klasse implementiert den Authorization Code Grant-Ablauf, der sowohl zum Abrufen als auch zum Aktualisieren von Zugriffstoken verwendet wird. Es handelt sich um einen umleitungsbasierten Ablauf, sodass der Benutzer Zugriff auf einen Webbrowser benötigt.
Da es sich um einen auf Weiterleitung basierenden Ablauf handelt, muss für diese Klasse ein geeigneter Antwort-Handler festgelegt werden. Siehe „OAuth 2.0 – Überblick“, QOAuthHttpServerReplyHandler sowie QOAuthUriSchemeReplyHandler.
Dokumentation zu Mitgliedstypen
[since 6.8] enum class QOAuth2AuthorizationCodeFlow::PkceMethod
Liste der verfügbaren PKCE-Methoden (Proof Key for Code Exchange).
PKCE ist eine Sicherheitsmaßnahme zur Minderung des Risikos von Angriffen durch das Abfangen von Autorisierungscodes. Als solche ist sie für den OAuth2-„Authorization Code“-Ablauf (Grant) relevant, insbesondere bei nativen Anwendungen.
PKCE fügt zusätzliche Parameter in Autorisierungs- und Zugriffstoken-Anfragen ein. Mithilfe dieser Parameter kann der Autorisierungsserver überprüfen, ob eine Zugriffstoken-Anfrage von derselben Entität stammt, die auch die Autorisierungsanfrage gestellt hat.
| Konstante | Wert | Beschreibung |
|---|---|---|
QOAuth2AuthorizationCodeFlow::PkceMethod::None | 255 | PKCE wird nicht verwendet. Dadurch ist der Ablauf ungeschützt gegen das Abfangen von Autorisierungscodes. Verwenden Sie diese Option nur, wenn der Autorisierungsserver PKCE nicht unterstützt. |
QOAuth2AuthorizationCodeFlow::PkceMethod::Plain | 1 | Die „Plain“-PKCE-Methode wird verwendet. Verwenden Sie diese Option nur, wenn die Verwendung von S256 nicht möglich ist. Bei der „Plain“-Methode entspricht die Code-Challenge dem Code-Verifier, wodurch der Verifier für jeden sichtbar wird, der die Autorisierungsanfrage abfangen kann. |
QOAuth2AuthorizationCodeFlow::PkceMethod::S256 | 0 | Es wird die S256-PKCE-Methode verwendet. Dies ist die Standardmethode und die empfohlene Methode für native Anwendungen. Bei der S256-Methode ist die Code-Challenge ein base64url-kodierter Wert des SHA-256-Hashes des Code-Verifiers. |
Diese Enumeration wurde in Qt 6.8 eingeführt.
Siehe auch „ setPkceMethod()“ und „ pkceMethod()“.
Dokumentation der Mitgliedsfunktionen
[explicit] QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(QObject *parent = nullptr)
Erstellt ein QOAuth2AuthorizationCodeFlow-Objekt mit dem übergeordneten Objekt „ parent “.
[explicit] QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(QNetworkAccessManager *manager, QObject *parent = nullptr)
Erstellt ein QOAuth2AuthorizationCodeFlow-Objekt, wobei „ parent “ als übergeordnetes Objekt verwendet wird, und legt „ manager “ als Netzwerkzugriffsmanager fest.
QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, QNetworkAccessManager *manager, QObject *parent = nullptr)
Erstellt ein `QOAuth2AuthorizationCodeFlow`-Objekt, wobei ` parent ` als übergeordnetes Objekt verwendet wird, und legt ` manager ` als Netzwerkzugriffsmanager fest. Die Client-ID wird auf ` clientIdentifier` gesetzt.
QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)
Erstellt ein QOAuth2AuthorizationCodeFlow-Objekt, wobei „ parent “ als übergeordnetes Objekt verwendet wird, und legt „ manager “ als Netzwerkzugriffsmanager fest. Die Authentifizierungs-URL wird auf „ authenticateUrl “ gesetzt, und die Zugriffstoken-URL wird auf „ accessTokenUrl “ gesetzt.
QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)
Erstellt ein QOAuth2AuthorizationCodeFlow-Objekt unter Verwendung von „ parent “ als übergeordnetem Objekt und legt „ manager “ als Netzwerkzugriffsmanager fest. Die Client-ID wird auf „ clientIdentifier “ gesetzt, die Authentifizierungs-URL auf „ authenticateUrl “ und die Zugriffstoken-URL auf „ accessTokenUrl “.
[virtual noexcept] QOAuth2AuthorizationCodeFlow::~QOAuth2AuthorizationCodeFlow()
Löscht die Instanz „ QOAuth2AuthorizationCodeFlow “.
[until 6.13] QUrl QOAuth2AuthorizationCodeFlow::accessTokenUrl() const
Diese Funktion soll in Version 6.13 als veraltet markiert werden.
Verwenden Sie stattdessen ` QAbstractOAuth2::tokenUrl()`.
Gibt die URL zurück, die zur Anforderung des Zugriffstokens verwendet wurde.
Siehe auch setAccessTokenUrl().
[protected] QUrl QOAuth2AuthorizationCodeFlow::buildAuthenticateUrl(const QMultiMap<QString, QVariant> ¶meters = {})
Erzeugt eine Authentifizierungs-URL, die in der Autorisierungsanfrage mithilfe von „ parameters “ verwendet wird.
[override virtual slot] void QOAuth2AuthorizationCodeFlow::grant()
Implementiert: QAbstractOAuth::grant().
Startet den Authentifizierungsablauf, wie in „Das OAuth 2.0-Autorisierungsframework“ beschrieben.
[noexcept, since 6.8] QOAuth2AuthorizationCodeFlow::PkceMethod QOAuth2AuthorizationCodeFlow::pkceMethod() const
Gibt die aktuelle PKCE-Methode zurück.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch „ setPkceMethod()“ und „ QOAuth2AuthorizationCodeFlow::PkceMethod “.
[slot, until 6.13] void QOAuth2AuthorizationCodeFlow::refreshAccessToken()
Diese Funktion soll in Version 6.13 als veraltet markiert werden.
Verwenden Sie stattdessen ` QAbstractOAuth2::refreshTokens()`.
Rufen Sie diese Funktion auf, um das Token zu aktualisieren.
Diese Funktion ruft ` refreshTokensImplementation()` auf.
[protected slot, since 6.9] void QOAuth2AuthorizationCodeFlow::refreshTokensImplementation()
Diese Funktion sendet eine Anfrage zur Aktualisierung des Tokens.
Wurde die Auffraganforderung erfolgreich initiiert, wird der Status auf „ QAbstractOAuth::Status::RefreshingToken “ gesetzt; andernfalls wird das Signal „ requestFailed()“ ausgegeben und der Status bleibt unverändert.
Diese Funktion hat keine Auswirkung, wenn der Token-Aktualisierungsvorgang bereits läuft.
Wenn die Aktualisierung des Tokens fehlschlägt und ein Zugriffstoken vorhanden ist, wird der Status auf „ QAbstractOAuth::Status::Granted “ gesetzt; wenn kein Zugriffstoken vorhanden ist, wird der Status auf „ QAbstractOAuth::Status::NotAuthenticated “ gesetzt.
Diese Funktion wurde in Qt 6.9 eingeführt.
Siehe auch „ QAbstractOAuth::requestFailed()“ und „ QAbstractOAuth2::refreshTokens()“.
[protected] void QOAuth2AuthorizationCodeFlow::requestAccessToken(const QString &code)
Fordert ein Zugriffstoken von der empfangenen URL „ code “ an. Die URL „ code “ wird als Antwort empfangen, wenn der Benutzer die Authentifizierung im Browser erfolgreich abgeschlossen hat.
[override virtual protected] void QOAuth2AuthorizationCodeFlow::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters = {})
Implementiert neu: QAbstractOAuth::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters).
Erstellt eine Authentifizierungs-URL unter Verwendung von url und parameters. Diese Funktion löst das Signal „ authorizeWithBrowser()“ aus, um eine Benutzerinteraktion anzufordern.
[until 6.13] void QOAuth2AuthorizationCodeFlow::setAccessTokenUrl(const QUrl &accessTokenUrl)
Diese Funktion wird in Version 6.13 als veraltet markiert.
Verwenden Sie stattdessen QAbstractOAuth2::setTokenUrl() .
Setzt die URL, die zur Anforderung des Zugriffstokens verwendet wird, auf accessTokenUrl.
Siehe auch accessTokenUrl().
[since 6.8] void QOAuth2AuthorizationCodeFlow::setPkceMethod(QOAuth2AuthorizationCodeFlow::PkceMethod method, qsizetype length = 43)
Legt die aktuelle PKCE-Methode auf „ method “ fest.
Optional kann der Parameter „ length “ verwendet werden, um die Länge des „ code_verifier “ festzulegen. Der Wert muss zwischen 43 und 128 Byte liegen. Der „Code Verifier“ selbst wird von der Bibliothek zufällig generiert.
Die Einstellung von ` method ` auf ` PkceMethod::None ` oder ` PkceMethod::Plain ` schwächt den Schutz vor dem Abfangen des Autorisierungscodes.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch pkceMethod() und 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.