QOAuth2AuthorizationCodeFlow Class
Die Klasse QOAuth2AuthorizationCodeFlow bietet eine Implementierung des Autorisierungscode-Erteilungsflusses. Mehr...
Kopfzeile: | #include <QOAuth2AuthorizationCodeFlow> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS NetworkAuth) target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth) |
qmake: | QT += networkauth |
Vererbungen: | QAbstractOAuth2 |
Öffentliche Typen
(since 6.8) enum class | PkceMethod { None, Plain, S256 } |
Eigenschaften
- accessTokenUrl : QUrl
Ö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() |
QUrl | accessTokenUrl() const |
(since 6.8) QOAuth2AuthorizationCodeFlow::PkceMethod | pkceMethod() const |
void | setAccessTokenUrl(const QUrl &accessTokenUrl) |
(since 6.8) void | setPkceMethod(QOAuth2AuthorizationCodeFlow::PkceMethod method, qsizetype length = 43) |
Öffentliche Slots
virtual void | grant() override |
void | refreshAccessToken() |
Signale
void | accessTokenUrlChanged(const QUrl &accessTokenUrl) |
Geschützte Funktionen
QUrl | buildAuthenticateUrl(const QMultiMap<QString, QVariant> ¶meters = {}) |
void | requestAccessToken(const QString &code) |
Reimplementierte geschützte Funktionen
virtual void | resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters = {}) override |
Detaillierte Beschreibung
Diese Klasse implementiert den Ablauf der Erteilung von Berechtigungscodes, der sowohl für die Erlangung als auch für die Aktualisierung von Zugriffstokens verwendet wird. Es handelt sich um einen umleitungsbasierten Fluss, so dass der Benutzer Zugriff auf einen Webbrowser benötigt.
Da es sich um einen umleitungsbasierten Fluss handelt, muss für diese Klasse ein geeigneter Reply-Handler gesetzt werden. Siehe Qt OAuth2 Übersicht, QOAuthHttpServerReplyHandler und QOAuthUriSchemeReplyHandler.
Dokumentation der Mitgliedstypen
[since 6.8]
enum class QOAuth2AuthorizationCodeFlow::PkceMethod
Liste der verfügbaren Proof Key for Code Exchange (PKCE)-Methoden.
PKCE ist eine Sicherheitsmaßnahme zur Minderung des Risikos von Abfangangriffen auf den Autorisierungscode. Als solche ist sie für den OAuth2 "Authorization Code"-Fluss (Grant) und insbesondere für native Anwendungen relevant.
PKCE fügt zusätzliche Parameter in Autorisierungs- und Access-Token-Anfragen ein. Mit Hilfe dieser Parameter ist der Autorisierungsserver in der Lage zu überprüfen, ob eine Access Token-Anfrage von derselben Entität stammt, die die Autorisierungsanfrage gestellt hat.
Konstante | Wert | Beschreibung |
---|---|---|
QOAuth2AuthorizationCodeFlow::PkceMethod::None | 255 | PKCE wird nicht verwendet. |
QOAuth2AuthorizationCodeFlow::PkceMethod::Plain | 1 | Es wird die Methode Plain PKCE verwendet. Verwenden Sie diese nur, wenn es nicht möglich ist, S256 zu verwenden. Bei der Plain-Methode entspricht der Code Challenge dem Code Verifier. |
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 des Code-Verifiers. |
Dieses Enum wurde in Qt 6.8 eingeführt.
Siehe auch setPkceMethod() und pkceMethod().
Dokumentation der Eigenschaft
accessTokenUrl : QUrl
Diese Eigenschaft enthält die URL, die verwendet wird, um den temporären Code zu konvertieren, der während der Autorisierungsantwort empfangen wurde.
Siehe auch: Zugriffstoken-Anfrage
Zugriffsfunktionen:
QUrl | accessTokenUrl() const |
void | setAccessTokenUrl(const QUrl &accessTokenUrl) |
Benachrichtigungssignal:
void | accessTokenUrlChanged(const QUrl &accessTokenUrl) |
Dokumentation der Mitgliedsfunktionen
[explicit]
QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(QObject *parent = nullptr)
Konstruiert ein QOAuth2AuthorizationCodeFlow-Objekt mit dem übergeordneten Objekt parent.
[explicit]
QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(QNetworkAccessManager *manager, QObject *parent = nullptr)
Konstruiert ein QOAuth2AuthorizationCodeFlow-Objekt mit parent als übergeordnetem Objekt und setzt manager als Netzwerkzugriffsmanager.
QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, QNetworkAccessManager *manager, QObject *parent = nullptr)
Konstruiert ein QOAuth2AuthorizationCodeFlow-Objekt mit parent als übergeordnetem Objekt und setzt manager als Netzwerkzugriffsmanager. Der Client-Bezeichner wird auf clientIdentifier gesetzt.
QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)
Konstruiert ein QOAuth2AuthorizationCodeFlow-Objekt mit parent als übergeordnetem Objekt und setzt manager als Netzwerkzugriffsmanager. Die URL für die Authentifizierung wird auf authenticateUrl und die URL für das Zugriffstoken auf accessTokenUrl gesetzt.
QOAuth2AuthorizationCodeFlow::QOAuth2AuthorizationCodeFlow(const QString &clientIdentifier, const QUrl &authenticateUrl, const QUrl &accessTokenUrl, QNetworkAccessManager *manager, QObject *parent = nullptr)
Konstruiert ein QOAuth2AuthorizationCodeFlow-Objekt mit parent als übergeordnetem Objekt und setzt manager als Netzwerkzugriffsmanager. Der Client-Identifikator wird auf clientIdentifier gesetzt, die Authentifizierungs-URL auf authenticateUrl und die Zugriffstoken-URL auf accessTokenUrl.
[virtual noexcept]
QOAuth2AuthorizationCodeFlow::~QOAuth2AuthorizationCodeFlow()
Zerstört die Instanz QOAuth2AuthorizationCodeFlow.
QUrl QOAuth2AuthorizationCodeFlow::accessTokenUrl() const
Gibt die URL zurück, die zur Anforderung des Zugriffstokens verwendet wurde.
Hinweis: Getter-Funktion für die Eigenschaft accessTokenUrl.
Siehe auch setAccessTokenUrl().
[protected]
QUrl QOAuth2AuthorizationCodeFlow::buildAuthenticateUrl(const QMultiMap<QString, QVariant> ¶meters = {})
Erzeugt eine Authentifizierungs-URL, die in der Autorisierungsanfrage unter parameters verwendet wird.
[override virtual slot]
void QOAuth2AuthorizationCodeFlow::grant()
Reimplements: QAbstractOAuth::grant().
Startet den Authentifizierungsfluss wie in The OAuth 2.0 Authorization Framework 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]
void QOAuth2AuthorizationCodeFlow::refreshAccessToken()
Rufen Sie diese Funktion auf, um das Token zu aktualisieren. Zugangstoken sind nicht dauerhaft. Nach einer Zeit, die zusammen mit dem Zugriffstoken angegeben wurde, wird das Zugriffstoken ungültig.
Wenn die Auffrischung des Tokens fehlschlägt und ein Zugriffstoken existiert, wird der Status auf QAbstractOAuth::Status::Granted gesetzt, andernfalls auf QAbstractOAuth::Status::NotAuthenticated.
Siehe auch QAbstractOAuth::requestFailed() und Refresh Token.
[protected]
void QOAuth2AuthorizationCodeFlow::requestAccessToken(const QString &code)
Fordert ein Zugriffstoken von dem empfangenen code an. Das 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 = {})
Reimplements: QAbstractOAuth::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters).
Erzeugt eine Authentifizierungs-URL unter Verwendung von url und parameters. Diese Funktion gibt ein authorizeWithBrowser()-Signal aus, um eine Benutzerinteraktion zu verlangen.
void QOAuth2AuthorizationCodeFlow::setAccessTokenUrl(const QUrl &accessTokenUrl)
Setzt die URL, die zur Anforderung des Zugriffstokens verwendet wird, auf accessTokenUrl.
Hinweis: Setter-Funktion für die Eigenschaft accessTokenUrl.
Siehe auch accessTokenUrl().
[since 6.8]
void QOAuth2AuthorizationCodeFlow::setPkceMethod(QOAuth2AuthorizationCodeFlow::PkceMethod method, qsizetype length = 43)
Setzt die aktuelle PKCE-Methode auf method.
Optional kann mit dem Parameter length die Länge des code_verifier
festgelegt werden. Der Wert muss zwischen 43 und 128 Byte liegen. Der "Code Verifier" selbst wird von der Bibliothek nach dem Zufallsprinzip generiert.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch pkceMethod() und QOAuth2AuthorizationCodeFlow::PkceMethod.
© 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.