QAbstractOAuth2 Class
The QAbstractOAuth2 class is the base of all implementations of OAuth 2 authentication methods. More...
Header: | #include <QAbstractOAuth2> |
CMake: | find_package(Qt6 COMPONENTS NetworkAuth REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth) |
qmake: | QT += networkauth |
Since: | Qt 5.8 |
Inherits: | QAbstractOAuth |
Inherited By: |
Properties
|
Public Functions
QAbstractOAuth2(QNetworkAccessManager *manager, QObject *parent = nullptr) | |
QAbstractOAuth2(QObject *parent = nullptr) | |
virtual | ~QAbstractOAuth2() |
QString | clientIdentifierSharedKey() const |
virtual QUrl | createAuthenticatedUrl(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) |
QDateTime | expirationAt() const |
virtual QNetworkReply * | post(const QUrl &url, const QByteArray &data) |
virtual QNetworkReply * | post(const QUrl &url, QHttpMultiPart *multiPart) |
virtual QNetworkReply * | put(const QUrl &url, const QByteArray &data) |
virtual QNetworkReply * | put(const QUrl &url, QHttpMultiPart *multiPart) |
QString | refreshToken() const |
QString | responseType() const |
QString | scope() const |
void | setClientIdentifierSharedKey(const QString &clientIdentifierSharedKey) |
void | setRefreshToken(const QString &refreshToken) |
void | setScope(const QString &scope) |
void | setState(const QString &state) |
void | setUserAgent(const QString &userAgent) |
QString | state() const |
QString | userAgent() const |
Reimplemented Public Functions
virtual QNetworkReply * | deleteResource(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) override |
virtual QNetworkReply * | get(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) override |
virtual QNetworkReply * | head(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) override |
virtual QNetworkReply * | post(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) override |
virtual void | prepareRequest(QNetworkRequest *request, const QByteArray &verb, const QByteArray &body = QByteArray()) override |
virtual QNetworkReply * | put(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) override |
Signals
void | authorizationCallbackReceived(const QVariantMap &data) |
void | clientIdentifierSharedKeyChanged(const QString &clientIdentifierSharedKey) |
void | error(const QString &error, const QString &errorDescription, const QUrl &uri) |
void | expirationAtChanged(const QDateTime &expiration) |
void | refreshTokenChanged(const QString &refreshToken) |
void | scopeChanged(const QString &scope) |
void | stateChanged(const QString &state) |
void | userAgentChanged(const QString &userAgent) |
Detailed Description
The class defines the basic interface of the OAuth 2 authentication classes. By inheriting this class, you can create custom authentication methods using the OAuth 2 standard for different web services.
A description of how OAuth 2 works can be found in: The OAuth 2.0 Authorization Framework
Property Documentation
clientIdentifierSharedKey : QString
This property holds the client shared key used as a password if the server requires authentication to request the token.
Access functions:
QString | clientIdentifierSharedKey() const |
void | setClientIdentifierSharedKey(const QString &clientIdentifierSharedKey) |
Notifier signal:
void | clientIdentifierSharedKeyChanged(const QString &clientIdentifierSharedKey) |
[read-only]
expiration : const QDateTime
This property holds the expiration time of the current access token.
Access functions:
QDateTime | expirationAt() const |
Notifier signal:
void | expirationAtChanged(const QDateTime &expiration) |
scope : QString
This property holds the desired scope which defines the permissions requested by the client.
Access functions:
QString | scope() const |
void | setScope(const QString &scope) |
Notifier signal:
void | scopeChanged(const QString &scope) |
state : QString
This property holds the string sent to the server during authentication. The state is used to identify and validate the request when the callback is received.
Access functions:
QString | state() const |
void | setState(const QString &state) |
Notifier signal:
void | stateChanged(const QString &state) |
userAgent : QString
This property holds the User-Agent header used to create the network requests.
The default value is "QtOAuth/1.0 (+https://www.qt.io)".
Access functions:
QString | userAgent() const |
void | setUserAgent(const QString &userAgent) |
Notifier signal:
void | userAgentChanged(const QString &userAgent) |
Member Function Documentation
QAbstractOAuth2::QAbstractOAuth2(QNetworkAccessManager *manager, QObject *parent = nullptr)
Constructs a QAbstractOAuth2 object using parent as parent and sets manager as the network access manager.
QAbstractOAuth2::QAbstractOAuth2(QObject *parent = nullptr)
Constructs a QAbstractOAuth2 object using parent as parent.
[signal]
void QAbstractOAuth2::authorizationCallbackReceived(const QVariantMap &data)
Signal emitted when the reply server receives the authorization callback from the server: data contains the values received from the server.
[signal]
void QAbstractOAuth2::error(const QString &error, const QString &errorDescription, const QUrl &uri)
Signal emitted when the server responds to the request with an error: error is the name of the error; errorDescription describes the error and uri is an optional URI containing more information about the error.
[virtual]
QAbstractOAuth2::~QAbstractOAuth2()
Destroys the QAbstractOAuth2 instance.
[virtual invokable]
QUrl QAbstractOAuth2::createAuthenticatedUrl(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
The returned URL is based on url, combining it with the given parameters and the access token.
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
[override virtual invokable]
QNetworkReply *QAbstractOAuth2::deleteResource(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
Reimplements: QAbstractOAuth::deleteResource(const QUrl &url, const QVariantMap ¶meters).
Sends an authenticated DELETE request and returns a new QNetworkReply. The url and parameters are used to create the request.
See also: Hypertext Transfer Protocol -- HTTP/1.1: DELETE
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
[override virtual invokable]
QNetworkReply *QAbstractOAuth2::get(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
Reimplements: QAbstractOAuth::get(const QUrl &url, const QVariantMap ¶meters).
Sends an authenticated GET request and returns a new QNetworkReply. The url and parameters are used to create the request.
See also: Hypertext Transfer Protocol -- HTTP/1.1: GET
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
[override virtual invokable]
QNetworkReply *QAbstractOAuth2::head(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
Reimplements: QAbstractOAuth::head(const QUrl &url, const QVariantMap ¶meters).
Sends an authenticated HEAD request and returns a new QNetworkReply. The url and parameters are used to create the request.
See also: Hypertext Transfer Protocol -- HTTP/1.1: HEAD
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
[override virtual invokable]
QNetworkReply *QAbstractOAuth2::post(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
Reimplements: QAbstractOAuth::post(const QUrl &url, const QVariantMap ¶meters).
Sends an authenticated POST request and returns a new QNetworkReply. The url and parameters are used to create the request.
See also: Hypertext Transfer Protocol -- HTTP/1.1: POST
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
[virtual invokable, since 5.10]
QNetworkReply *QAbstractOAuth2::post(const QUrl &url, const QByteArray &data)
This is an overloaded function.
Sends an authenticated POST request and returns a new QNetworkReply. The url and data are used to create the request.
{Hypertext Transfer Protocol -- HTTP/1.1: POST}
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
This function was introduced in Qt 5.10.
See also post() and https://tools.ietf.org/html/rfc2616#section-9.6.
[virtual invokable, since 5.10]
QNetworkReply *QAbstractOAuth2::post(const QUrl &url, QHttpMultiPart *multiPart)
This is an overloaded function.
Sends an authenticated POST request and returns a new QNetworkReply. The url and multiPart are used to create the request.
{Hypertext Transfer Protocol -- HTTP/1.1: POST}
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
This function was introduced in Qt 5.10.
See also post(), QHttpMultiPart, and https://tools.ietf.org/html/rfc2616#section-9.6.
[override virtual]
void QAbstractOAuth2::prepareRequest(QNetworkRequest *request, const QByteArray &verb, const QByteArray &body = QByteArray())
Reimplements: QAbstractOAuth::prepareRequest(QNetworkRequest *request, const QByteArray &verb, const QByteArray &body).
[override virtual invokable]
QNetworkReply *QAbstractOAuth2::put(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
Reimplements: QAbstractOAuth::put(const QUrl &url, const QVariantMap ¶meters).
Sends an authenticated PUT request and returns a new QNetworkReply. The url and parameters are used to create the request.
See also: Hypertext Transfer Protocol -- HTTP/1.1: PUT
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
[virtual invokable, since 5.10]
QNetworkReply *QAbstractOAuth2::put(const QUrl &url, const QByteArray &data)
This is an overloaded function.
Sends an authenticated PUT request and returns a new QNetworkReply. The url and data are used to create the request.
{Hypertext Transfer Protocol -- HTTP/1.1: PUT}
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
This function was introduced in Qt 5.10.
See also put() and https://tools.ietf.org/html/rfc2616#section-9.6.
[virtual invokable, since 5.10]
QNetworkReply *QAbstractOAuth2::put(const QUrl &url, QHttpMultiPart *multiPart)
This is an overloaded function.
Sends an authenticated PUT request and returns a new QNetworkReply. The url and multiPart are used to create the request.
{Hypertext Transfer Protocol -- HTTP/1.1: PUT}
Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.
This function was introduced in Qt 5.10.
See also put(), QHttpMultiPart, and https://tools.ietf.org/html/rfc2616#section-9.6.
QString QAbstractOAuth2::refreshToken() const
Gets the current refresh token.
Refresh tokens usually have longer lifespans than access tokens, so it makes sense to save them for later use.
Returns the current refresh token or an empty string, if there is no refresh token available.
Note: Getter function for property refreshToken.
See also setRefreshToken().
QString QAbstractOAuth2::responseType() const
Returns the response_type used.
void QAbstractOAuth2::setRefreshToken(const QString &refreshToken)
Sets the new refresh token refreshToken to be used.
A custom refresh token can be used to refresh the access token via this method and then the access token can be refreshed via QOAuth2AuthorizationCodeFlow::refreshAccessToken().
Note: Setter function for property refreshToken.
See also refreshToken().