QAbstractOAuth Class

The QAbstractOAuth class is the base of all implementations of OAuth authentication methods. More...

Header: #include <QAbstractOAuth>
qmake: QT += networkauth
Since: Qt 5.8
Inherits: QObject
Inherited By:


Public Types

enum Error { NoError, NetworkError, ServerError, OAuthTokenNotFoundError, OAuthTokenSecretNotFoundError, OAuthCallbackNotVerified }
typedef ModifyParametersFunction
enum Stage { RequestingTemporaryCredentials, RequestingAuthorization, RequestingAccessToken }
enum Status { NotAuthenticated, TemporaryCredentialsReceived, Granted, RefreshingToken }


  • 1 property inherited from QObject

Public Functions

virtual ~QAbstractOAuth()
QUrl authorizationUrl() const
virtual QString clientIdentifier() const = 0
virtual QNetworkReply *deleteResource(const QUrl &url, const QVariantMap &parameters = QVariantMap()) = 0
QVariantMap extraTokens() const
virtual QNetworkReply *get(const QUrl &url, const QVariantMap &parameters = QVariantMap()) = 0
virtual QNetworkReply *head(const QUrl &url, const QVariantMap &parameters = QVariantMap()) = 0
ModifyParametersFunction modifyParametersFunction() const
QNetworkAccessManager *networkAccessManager() const
virtual QNetworkReply *post(const QUrl &url, const QVariantMap &parameters = QVariantMap()) = 0
QAbstractOAuthReplyHandler *replyHandler() const
void setAuthorizationUrl(const QUrl &url)
virtual void setClientIdentifier(const QString &clientIdentifier) = 0
void setModifyParametersFunction(const ModifyParametersFunction &modifyParametersFunction)
void setNetworkAccessManager(QNetworkAccessManager *networkAccessManager)
void setReplyHandler(QAbstractOAuthReplyHandler *handler)
virtual void setToken(const QString &token) = 0
Status status() const
virtual QString token() const = 0
  • 31 public functions inherited from QObject

Public Slots

virtual void grant() = 0
  • 1 public slot inherited from QObject


void authorizationUrlChanged(const QUrl &url)
void authorizeWithBrowser(const QUrl &url)
void clientIdentifierChanged(const QString &clientIdentifier)
void extraTokensChanged(const QVariantMap &tokens)
void finished(QNetworkReply *reply)
void granted()
void replyDataReceived(const QByteArray &data)
void requestFailed(const Error error)
void statusChanged(Status status)
void tokenChanged(const QString &token)

Protected Functions

QAbstractOAuth(QAbstractOAuthPrivate &, QObject *parent = nullptr)
QString callback() const
virtual void resourceOwnerAuthorization(const QUrl &url, const QVariantMap &parameters)
void setStatus(Status status)
  • 9 protected functions inherited from QObject

Static Protected Members

QByteArray generateRandomString(quint8 length)

Additional Inherited Members

  • 11 static public members inherited from QObject

Detailed Description

The QAbstractOAuth class is the base of all implementations of OAuth authentication methods.

The class defines the basic interface of the OAuth authentication classes. By inheriting this class, you can create custom authentication methods for different web services.

It also contains some functions to ease the process of implementing different authentication flows.

Member Type Documentation

enum QAbstractOAuth::Error

Indicates the latest received error.

QAbstractOAuth::NoError0No error has ocurred.
QAbstractOAuth::NetworkError1Failed to connect to the server.
QAbstractOAuth::ServerError2The server answered the request with an error.
QAbstractOAuth::OAuthTokenNotFoundError3The server's response to a token request provided no token identifier.
QAbstractOAuth::OAuthTokenSecretNotFoundError4The server's response to a token request provided no token secret.
QAbstractOAuth::OAuthCallbackNotVerified5The authorization server has not verified the supplied callback URI in the request. This usually happens when the provided callback does not match with the callback supplied during client registration.

typedef QAbstractOAuth::ModifyParametersFunction

enum QAbstractOAuth::Stage

Identifies an authentication stage. It's passed to a ModifyParametersFunction so that it can make different changes to parameters at each call to it during the process of authentication.

QAbstractOAuth::RequestingTemporaryCredentials0Preparing the temporary credentials request.
QAbstractOAuth::RequestingAuthorization1Preparing the authorization grant URL.
QAbstractOAuth::RequestingAccessToken2Preparing the token request.

enum QAbstractOAuth::Status

Indicates the current authentication status.

QAbstractOAuth::NotAuthenticated0No token has been retrieved.
QAbstractOAuth::TemporaryCredentialsReceived1Temporary credentials have been received, this status is used in some OAuth authetication methods.
QAbstractOAuth::Granted2Token credentials have been received and authenticated calls are allowed.
QAbstractOAuth::RefreshingToken3New token credentials have been requested.

Property Documentation

authorizationUrl : QUrl

This property holds this property holds the URL used to request the Resource Owner Authorization as described in: The OAuth 1.0 Protocol: Resource Owner Authorization.

Access functions:

QUrl authorizationUrl() const
void setAuthorizationUrl(const QUrl &url)

Notifier signal:

void authorizationUrlChanged(const QUrl &url)

extraTokens : const QVariantMap

This property holds this property holds the extra tokens received from the server.

Access functions:

QVariantMap extraTokens() const

Notifier signal:

void extraTokensChanged(const QVariantMap &tokens)

status : const Status

This property holds this property holds the current authentication status.

Access functions:

Status status() const

Notifier signal:

void statusChanged(Status status)

Member Function Documentation

[protected] QAbstractOAuth::QAbstractOAuth(QAbstractOAuthPrivate &, QObject *parent = nullptr)

Copy constructor.

[virtual] QAbstractOAuth::~QAbstractOAuth()

Destroys the abstract OAuth.

QUrl QAbstractOAuth::authorizationUrl() const

Returns the authorization request URL.

Note: Getter function for property authorizationUrl.

See also setAuthorizationUrl().

[signal] void QAbstractOAuth::authorizeWithBrowser(const QUrl &url)

[protected] QString QAbstractOAuth::callback() const

Returns the current callback string corresponding to the current reply handler. The returned string is the string sent to the server to specify the callback URI, or the word identifying the alternative method in headless devices.

See also replyHandler() and setReplyHandler().

[pure virtual] QString QAbstractOAuth::clientIdentifier() const

See also setClientIdentifier().

[signal] void QAbstractOAuth::clientIdentifierChanged(const QString &clientIdentifier)

[pure virtual] QNetworkReply *QAbstractOAuth::deleteResource(const QUrl &url, const QVariantMap &parameters = QVariantMap())

QVariantMap QAbstractOAuth::extraTokens() const

Returns the extra tokens received from the server during authentication.

Note: Getter function for property extraTokens.

See also extraTokensChanged().

[signal] void QAbstractOAuth::finished(QNetworkReply *reply)

[static protected] QByteArray QAbstractOAuth::generateRandomString(quint8 length)

Generates a random string which could be used as state or nonce. The parameter length determines the size of the generated string.

See also: The OAuth 1.0 Protocol: Nonce and Timestamp.

[pure virtual] QNetworkReply *QAbstractOAuth::get(const QUrl &url, const QVariantMap &parameters = QVariantMap())

[pure virtual slot] void QAbstractOAuth::grant()

[signal] void QAbstractOAuth::granted()

ModifyParametersFunction QAbstractOAuth::modifyParametersFunction() const

Returns the current parameter-modification function.

See also ModifyParametersFunction, setModifyParametersFunction(), and Stage.

QNetworkAccessManager *QAbstractOAuth::networkAccessManager() const

Returns the current network access manager used to send the requests to the server during authentication flows or to make authentication calls.

See also setNetworkAccessManager() and QNetworkAccessManager.

[pure virtual] QNetworkReply *QAbstractOAuth::post(const QUrl &url, const QVariantMap &parameters = QVariantMap())

[signal] void QAbstractOAuth::replyDataReceived(const QByteArray &data)

QAbstractOAuthReplyHandler *QAbstractOAuth::replyHandler() const

Returns the reply handler currently in use.

See also setReplyHandler() and QAbstractOAuthReplyHandler.

[signal] void QAbstractOAuth::requestFailed(const Error error)

[virtual protected] void QAbstractOAuth::resourceOwnerAuthorization(const QUrl &url, const QVariantMap &parameters)

Builds the resource owner authorization URL to be used in the web browser: url is used as the base URL and the query is created using parameters. When the URL is ready, the authorizeWithBrowser() signal will be emitted with the generated URL.

See also authorizeWithBrowser().

void QAbstractOAuth::setAuthorizationUrl(const QUrl &url)

Sets the authorization request URL to url. This address will be used to allow the user to grant the application the ability to make authenticated calls on behalf of the user.

Note: Setter function for property authorizationUrl.

See also authorizationUrl().

[pure virtual] void QAbstractOAuth::setClientIdentifier(const QString &clientIdentifier)

See also clientIdentifier().

void QAbstractOAuth::setModifyParametersFunction(const ModifyParametersFunction &modifyParametersFunction)

See also modifyParametersFunction().

void QAbstractOAuth::setNetworkAccessManager(QNetworkAccessManager *networkAccessManager)

Sets the network manager to networkAccessManager. QAbstractOAuth does not take ownership of networkAccessManager. If no custom network access manager is set, an internal network access manager is used. This network access manager will be used to make the request to the authentication server and the authenticated request to the web service.

See also networkAccessManager() and QNetworkAccessManager.

void QAbstractOAuth::setReplyHandler(QAbstractOAuthReplyHandler *handler)

Sets the current reply handler to handler.

Note: Does not take ownership of handler.

See also replyHandler().

[protected] void QAbstractOAuth::setStatus(Status status)

Sets the current status to status. This method is for use by classes based on QAbstractOAuth.

See also status().

[pure virtual] void QAbstractOAuth::setToken(const QString &token)

See also token().

Status QAbstractOAuth::status() const

Returns the current authentication status.

Note: Getter function for property status.

See also setStatus() and Status.

[pure virtual] QString QAbstractOAuth::token() const

See also setToken().

[signal] void QAbstractOAuth::tokenChanged(const QString &token)

© 2017 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.