QAbstractOAuth 类
QAbstractOAuth 类是所有 OAuth 认证方法实现的基础。 更多信息...
头文件 | #include <QAbstractOAuth> |
CMake | find_package(Qt6 REQUIRED COMPONENTS NetworkAuth) target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth) |
qmake | QT += networkauth |
继承自 | QObject |
由以下类继承 |
公共类型
枚举类 | ContentType { WwwFormUrlEncoded, Json } |
枚举类 | Error { NoError, NetworkError, ServerError, OAuthTokenNotFoundError, OAuthTokenSecretNotFoundError, OAuthCallbackNotVerified } |
枚举类 | Stage { RequestingTemporaryCredentials, RequestingAuthorization, RequestingAccessToken, RefreshingAccessToken } |
枚举类 | Status { NotAuthenticated, TemporaryCredentialsReceived, Granted, RefreshingToken } |
属性
- authorizationUrl : QUrl
- contentType : QAbstractOAuth::ContentType
- extraTokens : const QVariantMap
- status : const Status
公共函数
virtual | ~QAbstractOAuth() |
QUrl | authorizationUrl() const |
QString | clientIdentifier() const |
QAbstractOAuth::ContentType | contentType() const |
virtual QNetworkReply * | deleteResource(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
QVariantMap | extraTokens() const |
virtual QNetworkReply * | get(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
virtual QNetworkReply * | head(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
QAbstractOAuth::ModifyParametersFunction | modifyParametersFunction() const |
QNetworkAccessManager * | networkAccessManager() const |
virtual QNetworkReply * | post(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
virtual void | prepareRequest(QNetworkRequest *request, const QByteArray &verb, const QByteArray &body = QByteArray()) = 0 |
virtual QNetworkReply * | put(const QUrl &url, const QVariantMap ¶meters = QVariantMap()) = 0 |
QAbstractOAuthReplyHandler * | replyHandler() const |
void | setAuthorizationUrl(const QUrl &url) |
void | setClientIdentifier(const QString &clientIdentifier) |
void | setContentType(QAbstractOAuth::ContentType contentType) |
void | setModifyParametersFunction(const QAbstractOAuth::ModifyParametersFunction &modifyParametersFunction) |
void | setNetworkAccessManager(QNetworkAccessManager *networkAccessManager) |
void | setReplyHandler(QAbstractOAuthReplyHandler *handler) |
void | setToken(const QString &token) |
QAbstractOAuth::Status | status() const |
QString | token() const |
公共槽函数
virtual void | 授予() = 0 |
信号
void | authorizationUrlChanged(const QUrl &url) |
void | authorizeWithBrowser(const QUrl &url) |
void | clientIdentifierChanged(const QString &clientIdentifier) |
void | contentTypeChanged(QAbstractOAuth::ContentType contentType) |
void | extraTokensChanged(const QVariantMap &tokens) |
void | 授予() |
void | requestFailed(const QAbstractOAuth::Error error) |
void | statusChanged(QAbstractOAuth::Status status) |
void | tokenChanged(const QString &token) |
保护函数
QString | callback() const |
virtual void | resourceOwnerAuthorization(const QUrl &url, const QMultiMap<QString, QVariant> ¶meters) |
void | setStatus(QAbstractOAuth::Status status) |
静态保护成员
QByteArray | generateRandomString(quint8 length) |
成员类型文档
枚举类 QAbstractOAuth::ContentType
表示认证调用中POST方法的MIME Content-Type。
常量 | 值 | 描述 |
---|---|---|
QAbstractOAuth::ContentType::WwwFormUrlEncoded | 0 | 使用application/x-www-form-urlencoded格式。 |
QAbstractOAuth::ContentType::Json | 1 | 使用application/json格式。 |
枚举类 QAbstractOAuth::Error
表示最新接收到的错误。
常量 | 值 | 描述 |
---|---|---|
QAbstractOAuth::Error::NoError | 0 | 没有错误发生。 |
QAbstractOAuth::Error::NetworkError | 1 | 连接到服务器失败。 |
QAbstractOAuth::Error::ServerError | 2 | 服务器请求出错,或其响应没有成功接收(例如,由于状态不匹配)。 |
QAbstractOAuth::Error::OAuthTokenNotFoundError | 3 | 令牌请求的响应未提供令牌标识符。 |
QAbstractOAuth::Error::OAuthTokenSecretNotFoundError | 4 | 令牌请求的响应未提供令牌密钥。 |
QAbstractOAuth::Error::OAuthCallbackNotVerified | 5 | 认证服务器未验证请求中提供的回调URI。这通常发生在提供的回调与客户端注册期间提供的回调不匹配时。 |
枚举类 QAbstractOAuth::Stage
标识认证阶段。该现象传递给一个 modifyParametersFunction,以便它在认证过程中的每次调用时对参数进行不同的更改。
常量 | 值 | 描述 |
---|---|---|
QAbstractOAuth::Stage::RequestingTemporaryCredentials | 0 | 准备临时凭证请求。 |
QAbstractOAuth::Stage::RequestingAuthorization | 1 | 准备授权授予权限的 URL。 |
QAbstractOAuth::Stage::RequestingAccessToken | 2 | 准备令牌请求。 |
QAbstractOAuth::Stage::RefreshingAccessToken | 3 | 准备访问令牌刷新。 |
枚举类 QAbstractOAuth::Status
指示当前的认证状态。
常量 | 值 | 描述 |
---|---|---|
QAbstractOAuth::Status::NotAuthenticated | 0 | 尚未检索到令牌。 |
QAbstractOAuth::Status::TemporaryCredentialsReceived | 1 | 已收到临时凭证,此状态用于某些 OAuth 认证方法。 |
QAbstractOAuth::Status::Granted | 2 | 已收到并认证令牌凭据,允许执行认证调用。 |
QAbstractOAuth::Status::RefreshingToken | 3 | 已请求新的令牌凭据。 |
属性文档
authorizationUrl : QUrl
此属性保存用于请求资源拥有者授权的 URL,参见: OAuth 1.0 协议:资源拥有者授权
访问函数
QUrl | authorizationUrl() const |
void | setAuthorizationUrl(const QUrl &url) |
通知信号
void | authorizationUrlChanged(const QUrl &url) |
contentType : QAbstractOAuth::ContentType
此属性保存用于发送授权参数的 Content-Type。
此属性控制发送 POST 请求时参数的格式化方式。还会添加适当的头部。
访问函数
QAbstractOAuth::ContentType | contentType() const |
void | setContentType(QAbstractOAuth::ContentType contentType) |
通知信号
void | contentTypeChanged(QAbstractOAuth::ContentType contentType) |
[只读]
extraTokens : const QVariantMap
此属性保存从服务器接收到的附加令牌。
访问函数
QVariantMap | extraTokens() const |
通知信号
void | extraTokensChanged(const QVariantMap &tokens) |
[只读]
status : const Status
此属性保存当前的认证状态。
访问函数
QAbstractOAuth::Status | status() const |
通知信号
void | statusChanged(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 ¶meters = QVariantMap())
发送一个认证的DELETE请求并返回一个新的 QNetworkReply。使用 url 和 parameters 来创建请求。
另请参阅: 超文本传输协议 – 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 ¶meters = QVariantMap())
发送经过身份验证的GET请求并返回一个新的QNetworkReply。使用url和parameters来创建请求。
另请参阅: 超文本传输协议 – HTTP/1.1: GET
注意:此函数可以通过元对象系统从QML中调用。参阅 Q_INVOKABLE。
[纯虚槽函数]
void QAbstractOAuth::grant()
覆盖此函数以在子类中实现相应的身份验证流程。客户端代码调用此函数以启动身份验证工作流程。这可能需要用户交互:例如,通过网页浏览器请求用户的授权。当身份验证成功时,应发出granted();这表示凭证准备用于身份验证调用。
[信号]
void QAbstractOAuth::granted()
当身份验证流程成功完成时发出此信号。
[纯虚调用]
QNetworkReply *QAbstractOAuth::head(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
发送经过身份验证的HEAD请求并返回一个新的QNetworkReply。使用url和parameters来创建请求。
另请参阅: 超文本传输协议 – 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 ¶meters = QVariantMap())
发送经过身份验证的POST请求并返回一个新的QNetworkReply。使用url和parameters来创建请求。
另请参阅: 超文本传输协议 – 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 ¶meters = QVariantMap())
发送身份验证PUT请求并返回一个新的QNetworkReply。使用url和parameters来创建请求。
另请参阅: 超文本传输协议 – 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> ¶meters)
构建用于在网页浏览器中使用的资源所有者授权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)
将网络管理器设置为 networkAccessManager。 QAbstractOAuth 不拥有 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
返回当前身份验证状态。
注意:属性状态的获取器函数。
QString QAbstractOAuth::token() const
返回用于签名认证请求的令牌。
注意:属性 token 的获取器函数。
另请参阅:setToken()。
© 2024 Qt公司有限公司。本文档中包含的贡献文档的版权属于各自的版权所有者。提供的文档根据Free Software Foundation发布的GNU自由文档许可证版本1.3许可。Qt及其相关标志是Qt公司在芬兰以及其他世界各地的商标。所有其他商标均为其各自所有者的财产。