QAbstractOAuth 类

QAbstractOAuth 类是所有 OAuth 认证方法实现的基础。 更多信息...

头文件 #include <QAbstractOAuth>
CMakefind_package(Qt6 REQUIRED COMPONENTS NetworkAuth)
target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth)
qmakeQT += networkauth
继承自 QObject
由以下类继承

QAbstractOAuth2QOAuth1

公共类型

枚举类ContentType { WwwFormUrlEncoded, Json }
枚举类Error { NoError, NetworkError, ServerError, OAuthTokenNotFoundError, OAuthTokenSecretNotFoundError, OAuthCallbackNotVerified }
枚举类Stage { RequestingTemporaryCredentials, RequestingAuthorization, RequestingAccessToken, RefreshingAccessToken }
枚举类Status { NotAuthenticated, TemporaryCredentialsReceived, Granted, RefreshingToken }

属性

公共函数

virtual~QAbstractOAuth()
QUrlauthorizationUrl() const
QStringclientIdentifier() const
QAbstractOAuth::ContentTypecontentType() const
virtual QNetworkReply *deleteResource(const QUrl &url, const QVariantMap &parameters = QVariantMap()) = 0
QVariantMapextraTokens() const
virtual QNetworkReply *get(const QUrl &url, const QVariantMap &parameters = QVariantMap()) = 0
virtual QNetworkReply *head(const QUrl &url, const QVariantMap &parameters = QVariantMap()) = 0
QAbstractOAuth::ModifyParametersFunctionmodifyParametersFunction() const
QNetworkAccessManager *networkAccessManager() const
virtual QNetworkReply *post(const QUrl &url, const QVariantMap &parameters = QVariantMap()) = 0
virtual voidprepareRequest(QNetworkRequest *request, const QByteArray &verb, const QByteArray &body = QByteArray()) = 0
virtual QNetworkReply *put(const QUrl &url, const QVariantMap &parameters = QVariantMap()) = 0
QAbstractOAuthReplyHandler *replyHandler() const
voidsetAuthorizationUrl(const QUrl &url)
voidsetClientIdentifier(const QString &clientIdentifier)
voidsetContentType(QAbstractOAuth::ContentType contentType)
voidsetModifyParametersFunction(const QAbstractOAuth::ModifyParametersFunction &modifyParametersFunction)
voidsetNetworkAccessManager(QNetworkAccessManager *networkAccessManager)
voidsetReplyHandler(QAbstractOAuthReplyHandler *handler)
voidsetToken(const QString &token)
QAbstractOAuth::Statusstatus() const
QStringtoken() const

公共槽函数

virtual void授予() = 0

信号

voidauthorizationUrlChanged(const QUrl &url)
voidauthorizeWithBrowser(const QUrl &url)
voidclientIdentifierChanged(const QString &clientIdentifier)
voidcontentTypeChanged(QAbstractOAuth::ContentType contentType)
voidextraTokensChanged(const QVariantMap &tokens)
void授予()
voidrequestFailed(const QAbstractOAuth::Error error)
voidstatusChanged(QAbstractOAuth::Status status)
voidtokenChanged(const QString &token)

保护函数

QStringcallback() const
virtual voidresourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> &parameters)
voidsetStatus(QAbstractOAuth::Status status)

静态保护成员

QByteArraygenerateRandomString(quint8 length)

详细说明

该类定义了OAuth认证类的基本接口。通过继承此类,可以为不同的网络服务创建自定义认证方法。

它还包括一些简化不同认证流程实现的函数。

成员类型文档

枚举类 QAbstractOAuth::ContentType

表示认证调用中POST方法的MIME Content-Type。

常量描述
QAbstractOAuth::ContentType::WwwFormUrlEncoded0使用application/x-www-form-urlencoded格式。
QAbstractOAuth::ContentType::Json1使用application/json格式。

枚举类 QAbstractOAuth::Error

表示最新接收到的错误。

常量描述
QAbstractOAuth::Error::NoError0没有错误发生。
QAbstractOAuth::Error::NetworkError1连接到服务器失败。
QAbstractOAuth::Error::ServerError2服务器请求出错,或其响应没有成功接收(例如,由于状态不匹配)。
QAbstractOAuth::Error::OAuthTokenNotFoundError3令牌请求的响应未提供令牌标识符。
QAbstractOAuth::Error::OAuthTokenSecretNotFoundError4令牌请求的响应未提供令牌密钥。
QAbstractOAuth::Error::OAuthCallbackNotVerified5认证服务器未验证请求中提供的回调URI。这通常发生在提供的回调与客户端注册期间提供的回调不匹配时。

枚举类 QAbstractOAuth::Stage

标识认证阶段。该现象传递给一个 modifyParametersFunction,以便它在认证过程中的每次调用时对参数进行不同的更改。

常量描述
QAbstractOAuth::Stage::RequestingTemporaryCredentials0准备临时凭证请求。
QAbstractOAuth::Stage::RequestingAuthorization1准备授权授予权限的 URL。
QAbstractOAuth::Stage::RequestingAccessToken2准备令牌请求。
QAbstractOAuth::Stage::RefreshingAccessToken3准备访问令牌刷新。

枚举类 QAbstractOAuth::Status

指示当前的认证状态。

常量描述
QAbstractOAuth::Status::NotAuthenticated0尚未检索到令牌。
QAbstractOAuth::Status::TemporaryCredentialsReceived1已收到临时凭证,此状态用于某些 OAuth 认证方法。
QAbstractOAuth::Status::Granted2已收到并认证令牌凭据,允许执行认证调用。
QAbstractOAuth::Status::RefreshingToken3已请求新的令牌凭据。

属性文档

authorizationUrl : QUrl

此属性保存用于请求资源拥有者授权的 URL,参见: OAuth 1.0 协议:资源拥有者授权

访问函数

QUrlauthorizationUrl() const
voidsetAuthorizationUrl(const QUrl &url)

通知信号

voidauthorizationUrlChanged(const QUrl &url)

contentType : QAbstractOAuth::ContentType

此属性保存用于发送授权参数的 Content-Type。

此属性控制发送 POST 请求时参数的格式化方式。还会添加适当的头部。

访问函数

QAbstractOAuth::ContentTypecontentType() const
voidsetContentType(QAbstractOAuth::ContentType contentType)

通知信号

voidcontentTypeChanged(QAbstractOAuth::ContentType contentType)

[只读] extraTokens : const QVariantMap

此属性保存从服务器接收到的附加令牌。

访问函数

QVariantMapextraTokens() const

通知信号

voidextraTokensChanged(const QVariantMap &tokens)

[只读] status : const Status

此属性保存当前的认证状态。

访问函数

QAbstractOAuth::Statusstatus() const

通知信号

voidstatusChanged(QAbstractOAuth::Status status)

成员函数文档

[虚函数] QAbstractOAuth::~QAbstractOAuth()

销毁抽象 OAuth 对象。

QUrl QAbstractOAuth::authorizationUrl() const

返回授权请求 URL。

注意: 属性授权Url的获取器函数。

另请参阅 setAuthorizationUrl()。

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

当由 resourceOwnerAuthorization() 生成的 url 准备在网页浏览器中使用,以便允许应用程序冒充用户时,会发出此信号。

另请参阅 resourceOwnerAuthorization()。

[保护] QString QAbstractOAuth::callback() const

返回与当前回复处理程序相应的当前回调字符串。返回的字符串是发送到服务器以指定回调URI的字符串,或者在没有头部的设备中识别替代方法的单词。

另请参阅 replyHandler() 和 setReplyHandler()。

QString QAbstractOAuth::clientIdentifier() const

返回在身份验证过程中使用的当前客户端标识符。

注意: 属性客户标识符的获取器函数。

另请参阅 setClientIdentifier()。

QAbstractOAuth::ContentType QAbstractOAuth::contentType() const

返回在认证调用中使用的当前Content-Type。

注意: 属性contentType的获取器函数。

另请参阅 setContentType() 和 post()。

[纯虚可调用的] QNetworkReply *QAbstractOAuth::deleteResource(const QUrl &url, const QVariantMap &parameters = QVariantMap())

发送一个认证的DELETE请求并返回一个新的 QNetworkReply。使用 urlparameters 来创建请求。

另请参阅: 超文本传输协议 – HTTP/1.1: DELETE

注意:此函数可以通过元对象系统从QML中调用。参阅 Q_INVOKABLE

QVariantMap QAbstractOAuth::extraTokens() const

返回在身份验证过程中从服务器接收到的额外令牌。

注意:属性extraTokens的获取器函数。

另请参阅 extraTokensChanged()。

[静态保护] QByteArray QAbstractOAuth::generateRandomString(quint8 length)

生成一个随机字符串,可以用作状态或nonce。参数 length 确定生成的字符串大小。

另请参阅: OAuth 1.0 协议:Nonce和Timestamp

注意:此函数是 线程安全的

[纯虚调用] QNetworkReply *QAbstractOAuth::get(const QUrl &url, const QVariantMap &parameters = QVariantMap())

发送经过身份验证的GET请求并返回一个新的QNetworkReply。使用urlparameters来创建请求。

另请参阅: 超文本传输协议 – HTTP/1.1: GET

注意:此函数可以通过元对象系统从QML中调用。参阅 Q_INVOKABLE

[纯虚槽函数] void QAbstractOAuth::grant()

覆盖此函数以在子类中实现相应的身份验证流程。客户端代码调用此函数以启动身份验证工作流程。这可能需要用户交互:例如,通过网页浏览器请求用户的授权。当身份验证成功时,应发出granted();这表示凭证准备用于身份验证调用。

[信号] void QAbstractOAuth::granted()

当身份验证流程成功完成时发出此信号。

发送经过身份验证的HEAD请求并返回一个新的QNetworkReply。使用urlparameters来创建请求。

另请参阅: 超文本传输协议 – HTTP/1.1: HEAD

注意:此函数可以通过元对象系统从QML中调用。参阅 Q_INVOKABLE

QAbstractOAuth::ModifyParametersFunction QAbstractOAuth::modifyParametersFunction() const

返回当前的参数修改函数。

另请参阅 setModifyParametersFunction()和Stage

QNetworkAccessManager *QAbstractOAuth::networkAccessManager() const

返回当前的网络访问管理器,用于在身份验证流程中向服务器发送请求或进行身份验证调用。

另请参阅 setNetworkAccessManager()和QNetworkAccessManager

[纯虚调用] QNetworkReply *QAbstractOAuth::post(const QUrl &url, const QVariantMap &parameters = QVariantMap())

发送经过身份验证的POST请求并返回一个新的QNetworkReply。使用urlparameters来创建请求。

另请参阅: 超文本传输协议 – HTTP/1.1: POST

注意:此函数可以通过元对象系统从QML中调用。参阅 Q_INVOKABLE

[纯虚] void QAbstractOAuth::prepareRequest(QNetworkRequest *request, const QByteArray &verb, const QByteArray &body = QByteArray())

通过添加标题和必要的身份验证请求正文,授权给定的请求

动词必须是有效的HTTP动词,并且与要在其中发送请求的动词相同。

[纯虚调用] QNetworkReply *QAbstractOAuth::put(const QUrl &url, const QVariantMap &parameters = QVariantMap())

发送身份验证PUT请求并返回一个新的QNetworkReply。使用urlparameters来创建请求。

另请参阅: 超文本传输协议 – HTTP/1.1: PUT

注意:此函数可以通过元对象系统从QML中调用。参阅 Q_INVOKABLE

QAbstractOAuthReplyHandler *QAbstractOAuth::replyHandler() const

返回当前正在使用的响应处理器。

另请参阅setReplyHandler() 和 QAbstractOAuthReplyHandler

[信号] void QAbstractOAuth::requestFailed(const QAbstractOAuth::Error error)

此信号用于指示对服务器的请求失败。提供的错误表示请求失败的原因。

另请参阅: QAbstractOAuth2::error() 和 QAbstractOAuthReplyHandler::tokenRequestErrorOccurred

[虚保护] void QAbstractOAuth::resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> &parameters)

构建用于在网页浏览器中使用的资源所有者授权URL:使用url作为基本URL,并使用parameters创建查询。当URL准备就绪时,将发出authorizeWithBrowser()信号,并附带生成的URL。

另请参阅authorizeWithBrowser

void QAbstractOAuth::setAuthorizationUrl(const QUrl &url)

设置授权请求URL为url。此地址将被用于允许用户授予应用代表用户进行认证调用的权限。

注意:属性 authorizationUrl 的设置函数。

另请参阅authorizationUrl

void QAbstractOAuth::setClientIdentifier(const QString &clientIdentifier)

将当前的客户端标识符设置为clientIdentifier

注意:属性 clientIdentifier 的设置函数。

另请参阅clientIdentifier

void QAbstractOAuth::setContentType(QAbstractOAuth::ContentType contentType)

设置当前的Content-Type为contentType

注意:为属性 contentType 的设置器函数。

另请参阅:contentType()。

void QAbstractOAuth::setModifyParametersFunction(const QAbstractOAuth::ModifyParametersFunction &modifyParametersFunction)

设置参数修改函数 modifyParametersFunction。该函数用于在指定的授权阶段期间自定义发送给服务器的参数。对此函数的调用次数取决于身份验证过程中使用的流程。

另请参阅:modifyParametersFunction()和 Stage()。

void QAbstractOAuth::setNetworkAccessManager(QNetworkAccessManager *networkAccessManager)

将网络管理器设置为 networkAccessManagerQAbstractOAuth 不拥有 networkAccessManager。如果没有设置自定义网络访问管理器,则使用内部网络访问管理器。此网络访问管理器将用于向认证服务器发送请求和对Web服务的认证请求。

另请参阅:networkAccessManager()和 QNetworkAccessManager

void QAbstractOAuth::setReplyHandler(QAbstractOAuthReplyHandler *handler)

将当前回复处理器设置为 handler

注意:不拥有 handler

另请参阅:replyHandler()。

[受保护] void QAbstractOAuth::setStatus(QAbstractOAuth::Status status)

将当前状态设置为 status。此方法用于基于 QAbstractOAuth 的类。

另请参阅:status()。

void QAbstractOAuth::setToken(const QString &token)

将用于签名认证请求的令牌设置为 token

注意:为属性 token 的设置器函数。

另请参阅:token()。

QString QAbstractOAuth::status() const

返回当前身份验证状态。

注意:属性状态的获取器函数。

另请参阅:setStatus()和 Status()。

QString QAbstractOAuth::token() const

返回用于签名认证请求的令牌。

注意:属性 token 的获取器函数。

另请参阅:setToken()。

© 2024 Qt公司有限公司。本文档中包含的贡献文档的版权属于各自的版权所有者。提供的文档根据Free Software Foundation发布的GNU自由文档许可证版本1.3许可。Qt及其相关标志是Qt公司在芬兰以及其他世界各地的商标。所有其他商标均为其各自所有者的财产。