class QAbstractOAuth

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

Inheritance diagram of PySide6.QtNetworkAuth.QAbstractOAuth

Inherited by: QOAuth1, QAbstractOAuth2, QOAuth2AuthorizationCodeFlow

Synopsis

Properties

  • authorizationUrlᅟ - This property holds the URL used to request the Resource Owner Authorization as described in: The OAuth 1.0 Protocol: Resource Owner Authorization

  • clientIdentifierᅟ

  • contentTypeᅟ - Content-Type to use when sending authorization parameters

  • extraTokensᅟ - This property holds the extra tokens received from the server

  • statusᅟ - This property holds the current authentication status

  • tokenᅟ

Methods

Virtual methods

Signals

Static functions

Note

This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE

Detailed Description

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.

class Status

Indicates the current authentication status.

Constant

Description

QAbstractOAuth.Status.NotAuthenticated

No token has been retrieved.

QAbstractOAuth.Status.TemporaryCredentialsReceived

Temporary credentials have been received, this status is used in some OAuth authetication methods.

QAbstractOAuth.Status.Granted

Token credentials have been received and authenticated calls are allowed.

QAbstractOAuth.Status.RefreshingToken

New token credentials have been requested.

class 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.

Constant

Description

QAbstractOAuth.Stage.RequestingTemporaryCredentials

Preparing the temporary credentials request.

QAbstractOAuth.Stage.RequestingAuthorization

Preparing the authorization grant URL.

QAbstractOAuth.Stage.RequestingAccessToken

Preparing the token request.

QAbstractOAuth.Stage.RefreshingAccessToken

Preparing the access token refresh.

class Error

Indicates the latest received error.

Constant

Description

QAbstractOAuth.Error.NoError

No error has ocurred.

QAbstractOAuth.Error.NetworkError

Failed to connect to the server.

QAbstractOAuth.Error.ServerError

The server answered the request with an error, or its response was not successfully received (for example, due to a state mismatch).

QAbstractOAuth.Error.OAuthTokenNotFoundError

The server’s response to a token request provided no token identifier.

QAbstractOAuth.Error.OAuthTokenSecretNotFoundError

The server’s response to a token request provided no token secret.

QAbstractOAuth.Error.OAuthCallbackNotVerified

The 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.

class ContentType

Indicates the MIME Content-Type of the POST methods in authenticated calls.

Constant

Description

QAbstractOAuth.ContentType.WwwFormUrlEncoded

Uses application/x-www-form-urlencoded format.

QAbstractOAuth.ContentType.Json

Uses application/json format.

Note

Properties can be used directly when from __feature__ import true_property is used or via accessor functions otherwise.

property 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:
property clientIdentifierᅟ: str
Access functions:
property contentTypeᅟ: QAbstractOAuth.ContentType

This property holds The Content-Type to use when sending authorization parameters..

This property controls how parameters are formatted when sent with a POST request. A suitable header is also added.

Access functions:
property extraTokensᅟ: Dictionary with keys of type .QString and values of type QVariant.

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

Access functions:
property statusᅟ: QAbstractOAuth.Status

This property holds This property holds the current authentication status..

Access functions:
property tokenᅟ: str
Access functions:
authorizationUrl()
Return type:

QUrl

Returns the authorization request URL.

Getter of property authorizationUrlᅟ .

authorizationUrlChanged(url)
Parameters:

urlQUrl

Notification signal of property authorizationUrlᅟ .

authorizeWithBrowser(url)
Parameters:

urlQUrl

This signal is emitted when the url generated by resourceOwnerAuthorization() is ready to be used in the web browser to allow the application to impersonate the user.

callback()
Return type:

str

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.

clientIdentifier()
Return type:

str

Returns the current client identifier used in the authentication process.

Getter of property clientIdentifierᅟ .

clientIdentifierChanged(clientIdentifier)
Parameters:

clientIdentifier – str

Notification signal of property clientIdentifierᅟ .

contentType()
Return type:

ContentType

Returns the current Content-Type used in authenticated calls.

Getter of property contentTypeᅟ .

contentTypeChanged(contentType)
Parameters:

contentTypeContentType

Notification signal of property contentTypeᅟ .

abstract deleteResource(url[, parameters=QVariantMap()])
Parameters:
  • urlQUrl

  • parameters – Dictionary with keys of type .QString and values of type QVariant.

Return type:

QNetworkReply

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

extraTokens()
Return type:

Dictionary with keys of type .QString and values of type QVariant.

Returns the extra tokens received from the server during authentication.

Getter of property extraTokensᅟ .

extraTokensChanged(tokens)
Parameters:

tokens – Dictionary with keys of type .QString and values of type QVariant.

Notification signal of property extraTokensᅟ .

finished(reply)
Parameters:

replyQNetworkReply

static generateRandomString(length)
Parameters:

length – int

Return type:

QByteArray

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 .

abstract get(url[, parameters=QVariantMap()])
Parameters:
  • urlQUrl

  • parameters – Dictionary with keys of type .QString and values of type QVariant.

Return type:

QNetworkReply

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

abstract grant()

Override this function to implement the corresponding authentication flow in the subclasses. Client code calls this function to start the authentication workflow. This may require user interaction: for example, asking the user’s authorization via a web browser. When the authentication succeeds, it should emit granted() ; this gives notice that credentials are ready to be used in authenticated calls.

granted()

This signal is emitted when the authorization flow finishes successfully.

abstract head(url[, parameters=QVariantMap()])
Parameters:
  • urlQUrl

  • parameters – Dictionary with keys of type .QString and values of type QVariant.

Return type:

QNetworkReply

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

networkAccessManager()
Return type:

QNetworkAccessManager

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

abstract post(url[, parameters=QVariantMap()])
Parameters:
  • urlQUrl

  • parameters – Dictionary with keys of type .QString and values of type QVariant.

Return type:

QNetworkReply

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

abstract prepareRequest(request, verb[, body=QByteArray()])
Parameters:

Authorizes the given request by adding a header and body to it required for authenticated requests.

The verb must be a valid HTTP verb and the same as the one that will be used to send the request.

abstract put(url[, parameters=QVariantMap()])
Parameters:
  • urlQUrl

  • parameters – Dictionary with keys of type .QString and values of type QVariant.

Return type:

QNetworkReply

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

replyDataReceived(data)
Parameters:

dataQByteArray

replyHandler()
Return type:

QAbstractOAuthReplyHandler

Returns the reply handler currently in use.

requestFailed(error)
Parameters:

errorError

This signal is emitted to indicate that a request to a server has failed. The error supplied indicates how the request failed.

resourceOwnerAuthorization(url, parameters)
Parameters:
  • urlQUrl

  • parameters – .QMultiMapQString,QVariant

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.

setAuthorizationUrl(url)
Parameters:

urlQUrl

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.

Setter of property authorizationUrlᅟ .

setClientIdentifier(clientIdentifier)
Parameters:

clientIdentifier – str

Sets the current client identifier to clientIdentifier.

Setter of property clientIdentifierᅟ .

setContentType(contentType)
Parameters:

contentTypeContentType

Sets the current Content-Type to contentType.

See also

contentType()

Setter of property contentTypeᅟ .

setModifyParametersFunction(modifyParametersFunction)
Parameters:

modifyParametersFunction – object

setNetworkAccessManager(networkAccessManager)
Parameters:

networkAccessManagerQNetworkAccessManager

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.

setReplyHandler(handler)
Parameters:

handlerQAbstractOAuthReplyHandler

Sets the current reply handler to handler.

Note

Does not take ownership of handler.

See also

replyHandler()

setStatus(status)
Parameters:

statusStatus

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

See also

status()

setToken(token)
Parameters:

token – str

Sets the token used to sign authenticated requests to token.

See also

token()

Setter of property tokenᅟ .

status()
Return type:

Status

Returns the current authentication status.

See also

setStatus() Status

Getter of property statusᅟ .

statusChanged(status)
Parameters:

statusStatus

Notification signal of property statusᅟ .

token()
Return type:

str

Returns the token used to sign the authenticated requests.

See also

setToken()

Getter of property tokenᅟ .

tokenChanged(token)
Parameters:

token – str

Notification signal of property tokenᅟ .