QOAuth1 Class
QOAuth1 类实现了OAuth 1 协议。更多内容...
| 头文件: | #include <QOAuth1> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS NetworkAuth) target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth) |
| qmake: | QT += networkauth |
| 继承自: | QAbstractOAuth |
公共类型
| enum class | SignatureMethod { Hmac_Sha1, Rsa_Sha1, PlainText } |
公共函数
| QOAuth1(QObject *parent = nullptr) | |
| QOAuth1(QNetworkAccessManager *manager, QObject *parent = nullptr) | |
| QOAuth1(const QString &clientIdentifier, const QString &clientSharedSecret, QNetworkAccessManager *manager, QObject *parent = nullptr) | |
| std::pair<QString, QString> | clientCredentials() const |
| QString | clientSharedSecret() const |
| void | setClientCredentials(const std::pair<QString, QString> &clientCredentials) |
| void | setClientCredentials(const QString &clientIdentifier, const QString &clientSharedSecret) |
| void | setClientSharedSecret(const QString &clientSharedSecret) |
| void | setSignatureMethod(QOAuth1::SignatureMethod value) |
| void | setTemporaryCredentialsUrl(const QUrl &url) |
| void | setTokenCredentials(const std::pair<QString, QString> &tokenCredentials) |
| void | setTokenCredentials(const QString &token, const QString &tokenSecret) |
| void | setTokenCredentialsUrl(const QUrl &url) |
| void | setTokenSecret(const QString &tokenSecret) |
| QOAuth1::SignatureMethod | signatureMethod() const |
| QUrl | temporaryCredentialsUrl() const |
| std::pair<QString, QString> | tokenCredentials() const |
| QUrl | tokenCredentialsUrl() const |
| QString | tokenSecret() const |
重新实现的公共函数
| 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 |
公共槽
| void | continueGrantWithVerifier(const QString &verifier) |
| virtual void | grant() override |
信号
| void | clientSharedSecretChanged(const QString &credential) |
| void | signatureMethodChanged(QOAuth1::SignatureMethod method) |
| void | temporaryCredentialsUrlChanged(const QUrl &url) |
| void | tokenCredentialsUrlChanged(const QUrl &url) |
| void | tokenSecretChanged(const QString &token) |
受保护函数
| QNetworkReply * | requestTemporaryCredentials(QNetworkAccessManager::Operation operation, const QUrl &url, const QVariantMap ¶meters = QVariantMap()) |
| QNetworkReply * | requestTokenCredentials(QNetworkAccessManager::Operation operation, const QUrl &url, const std::pair<QString, QString> &temporaryToken, const QVariantMap ¶meters = QVariantMap()) |
| void | setup(QNetworkRequest *request, const QVariantMap &signingParameters, QNetworkAccessManager::Operation operation) |
| void | setup(QNetworkRequest *request, const QVariantMap &signingParameters, const QByteArray &operationVerb) |
静态受保护成员
| QByteArray | generateAuthorizationHeader(const QVariantMap &oauthParams) |
| QByteArray | nonce() |
详细说明
QOAuth1 提供了一种方法,允许客户端代表资源所有者(例如其他客户端或最终用户)访问服务器资源。它还提供了一种流程,使最终用户能够通过用户代理重定向,在不共享其凭据(通常是用户名和密码对)的情况下,授权第三方访问其服务器资源。
QOAuth1 使用令牌来表示资源所有者授予客户端的授权。通常,令牌凭据由服务器应资源所有者的请求签发,此前服务器已验证了资源所有者的身份(通常使用用户名和密码)。
在发出临时凭据请求时,客户端仅使用客户端凭据进行身份验证。 在提出令牌请求时,客户端会使用客户端凭据和临时凭据进行身份验证。一旦客户端接收并存储了令牌凭据,它就可以代表资源所有者,通过结合使用客户端凭据和收到的令牌凭据来发出经过身份验证的请求,从而访问受保护的资源。
成员函数文档
[explicit] QOAuth1::QOAuth1(QObject *parent = nullptr)
基于父对象parent 构建一个 QOAuth1 对象。
[explicit] QOAuth1::QOAuth1(QNetworkAccessManager *manager, QObject *parent = nullptr)
创建一个以parent 为父对象的QOAuth1对象,并使用manager 访问网络。
QOAuth1::QOAuth1(const QString &clientIdentifier, const QString &clientSharedSecret, QNetworkAccessManager *manager, QObject *parent = nullptr)
创建一个父对象为parent 的QOAuth1对象,使用manager 访问网络。同时设置clientIdentifier 和clientSharedSecret ,以对发送到Web服务器的调用进行签名并识别应用程序。
std::pair<QString, QString> QOAuth1::clientCredentials() const
返回用于标识应用程序并签署发往 Web 服务器的请求的QString 对。
另请参阅 setClientCredentials()。
QString QOAuth1::clientSharedSecret() const
返回当前用于对发往 Web 服务器的请求进行签名的共享密钥。
另请参阅 setClientSharedSecret() 和clientCredentials()。
[signal] void QOAuth1::clientSharedSecretChanged(const QString &credential)
当客户端共享密钥credential 发生变化时触发。
另请参阅 clientSharedSecret()、setClientSharedSecret() 和setClientCredentials()。
[slot] void QOAuth1::continueGrantWithVerifier(const QString &verifier)
继续使用verifier 进行基于重定向的授权流程。当使用带外响应处理程序时,请调用此函数以提供由 Web 服务器提供的验证器。
[override virtual] QNetworkReply *QOAuth1::deleteResource(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
重写:QAbstractOAuth::deleteResource (const QUrl &url, const QVariantMap ¶meters)。
发送一个经过身份验证的 DELETE 请求,并返回一个新的QNetworkReply 。url 和parameters 用于创建该请求。
[static protected] QByteArray QOAuth1::generateAuthorizationHeader(const QVariantMap &oauthParams)
使用oauthParams 生成授权头。
另请参阅:《OAuth 1.0 协议:授权标头》
[override virtual] QNetworkReply *QOAuth1::get(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
重写自:QAbstractOAuth::get(const QUrl &url, const QVariantMap ¶meters)。
发送一个经过身份验证的 GET 请求,并返回一个新的QNetworkReply 。url 和parameters 用于创建该请求。
[override virtual slot] void QOAuth1::grant()
重写了:QAbstractOAuth::grant()。
启动基于重定向的授权流程。
注意:对于 带外响应处理程序,调用此函数后会收到一个验证字符串;将其传递给continueGrantWithVerifier() 以继续授权流程。
另请参阅 continueGrantWithVerifier()。
[override virtual] QNetworkReply *QOAuth1::head(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
重写:QAbstractOAuth::head (const QUrl &url, const QVariantMap ¶meters)。
发送一个经过身份验证的 HEAD 请求,并返回一个新的QNetworkReply 对象。url 和parameters 用于创建该请求。
[static protected] QByteArray QOAuth1::nonce()
生成一个非重复值。
另请参阅:《OAuth 1.0 协议:Nonce 和时间戳》
[override virtual] QNetworkReply *QOAuth1::post(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
重写:QAbstractOAuth::post (const QUrl &url, const QVariantMap ¶meters)。
发送一个经过身份验证的POST请求,并返回一个新的QNetworkReply 。url 和parameters 用于创建该请求。
[override virtual] void QOAuth1::prepareRequest(QNetworkRequest *request, const QByteArray &verb, const QByteArray &body = QByteArray())
重写了:QAbstractOAuth::prepareRequest (QNetworkRequest *request, const QByteArray &verb, const QByteArray &body)。
[override virtual] QNetworkReply *QOAuth1::put(const QUrl &url, const QVariantMap ¶meters = QVariantMap())
重写自:QAbstractOAuth::put(const QUrl &url, const QVariantMap ¶meters)。
发送一个经过身份验证的 PUT 请求,并返回一个新的QNetworkReply 。url 和parameters 将用于创建该请求。
[protected] QNetworkReply *QOAuth1::requestTemporaryCredentials(QNetworkAccessManager::Operation operation, const QUrl &url, const QVariantMap ¶meters = QVariantMap())
使用请求方法operation 发起临时凭证请求。请求 URL 为url ,且parameters 应在请求中进行编码并发送。
另请参阅:《OAuth 1.0 协议:临时凭据》
[protected] QNetworkReply *QOAuth1::requestTokenCredentials(QNetworkAccessManager::Operation operation, const QUrl &url, const std::pair<QString, QString> &temporaryToken, const QVariantMap ¶meters = QVariantMap())
使用请求方法operation 发起令牌凭据请求。请求 URL 为url ,请求过程中应将parameters 进行编码并发送。字符串对temporaryToken 用于标识和签名该请求。
另请参阅:《OAuth 1.0 协议:令牌凭据》
void QOAuth1::setClientCredentials(const std::pair<QString, QString> &clientCredentials)
将clientCredentials 设置为QString 对,用于识别应用程序并签署发往Web服务器的请求。
另请参阅 clientCredentials()。
void QOAuth1::setClientCredentials(const QString &clientIdentifier, const QString &clientSharedSecret)
将clientIdentifier 和clientSharedSecret 设置为QString 的配对,用于标识应用程序并签署发往 Web 服务器的请求。clientIdentifier 用于标识应用程序,clientSharedSecret 用于签署请求。
另请参阅 clientCredentials()。
void QOAuth1::setClientSharedSecret(const QString &clientSharedSecret)
将clientSharedSecret 设置为用于对发往 Web 服务器的请求进行签名的字符串。
另请参阅 clientSharedSecret() 和setClientCredentials()。
void QOAuth1::setSignatureMethod(QOAuth1::SignatureMethod value)
将value 设置为用于对发往 Web 服务器的请求进行签名的方法。
另请参阅 signatureMethod()。
void QOAuth1::setTemporaryCredentialsUrl(const QUrl &url)
将url 设置为用于请求临时凭据以启动身份验证流程的 URL。
另请参阅 temporaryCredentialsUrl()。
void QOAuth1::setTokenCredentials(const std::pair<QString, QString> &tokenCredentials)
将tokenCredentials 设置为QString 的密钥对,该密钥对用于识别并签署发往 Web 服务器的经过身份验证的请求。
另请参阅 tokenCredentials()。
void QOAuth1::setTokenCredentials(const QString &token, const QString &tokenSecret)
将token 和tokenSecret 设置为用于识别和签署发往 Web 服务器的经过身份验证的请求的QString 对。客户端接收并存储令牌凭据后,即可使用客户端凭据与收到的令牌凭据一起发出经过身份验证的请求,从而代表资源所有者访问受保护的资源。
另请参阅 tokenCredentials()。
void QOAuth1::setTokenCredentialsUrl(const QUrl &url)
将url 设置为用于请求令牌凭据的 URL,以便继续身份验证过程。
另请参阅 tokenCredentialsUrl()。
void QOAuth1::setTokenSecret(const QString &tokenSecret)
将tokenSecret 设置为当前令牌密钥,用于对发往 Web 服务器的经过身份验证的调用进行签名。
另请参阅 tokenSecret() 和setTokenCredentials()。
[protected] void QOAuth1::setup(QNetworkRequest *request, const QVariantMap &signingParameters, QNetworkAccessManager::Operation operation)
使用signingParameters 和operation 对request 进行签名。
这是一个重载函数。
[protected] void QOAuth1::setup(QNetworkRequest *request, const QVariantMap &signingParameters, const QByteArray &operationVerb)
使用signingParameters 和operationVerb 对request 进行签名。
这是一个重载函数。
QOAuth1::SignatureMethod QOAuth1::signatureMethod() const
返回用于对发往 Web 服务器的请求进行签名的算法。
另请参阅 setSignatureMethod()。
[signal] void QOAuth1::signatureMethodChanged(QOAuth1::SignatureMethod method)
当签名method 发生变化时触发。
另请参阅 signatureMethod() 和setSignatureMethod()。
QUrl QOAuth1::temporaryCredentialsUrl() const
返回用于请求临时凭据以启动身份验证过程的 URL。
另请参阅 setTemporaryCredentialsUrl()。
[signal] void QOAuth1::temporaryCredentialsUrlChanged(const QUrl &url)
当临时凭证url 发生变化时触发。
另请参阅 temporaryCredentialsUrl() 和setTemporaryCredentialsUrl()。
std::pair<QString, QString> QOAuth1::tokenCredentials() const
返回用于识别和签署发往 Web 服务器的经过身份验证的请求的QString 对。
另请参阅 setTokenCredentials()。
QUrl QOAuth1::tokenCredentialsUrl() const
返回用于请求令牌凭据以继续身份验证过程的 URL。
另请参阅 setTokenCredentialsUrl()。
[signal] void QOAuth1::tokenCredentialsUrlChanged(const QUrl &url)
当令牌凭据url 发生变化时触发。
另请参阅 tokenCredentialsUrl() 和setTokenCredentialsUrl()。
QString QOAuth1::tokenSecret() const
返回当前用于对发往 Web 服务器的经过身份验证的请求进行签名的令牌密钥。
另请参阅 setTokenSecret() 和tokenCredentials()。
[signal] void QOAuth1::tokenSecretChanged(const QString &token)
当令牌密钥token 发生变化时触发。
另请参阅 tokenSecret()、setTokenSecret() 和setTokenCredentials()。
© 2026 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.