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 &parameters = QVariantMap()) override
virtual QNetworkReply *get(const QUrl &url, const QVariantMap &parameters = QVariantMap()) override
virtual QNetworkReply *head(const QUrl &url, const QVariantMap &parameters = QVariantMap()) override
virtual QNetworkReply *post(const QUrl &url, const QVariantMap &parameters = QVariantMap()) override
virtual void prepareRequest(QNetworkRequest *request, const QByteArray &verb, const QByteArray &body = QByteArray()) override
virtual QNetworkReply *put(const QUrl &url, const QVariantMap &parameters = QVariantMap()) override

公共槽

void continueGrantWithVerifier(const QString &verifier)
virtual void grant() override

受保护函数

QNetworkReply *requestTemporaryCredentials(QNetworkAccessManager::Operation operation, const QUrl &url, const QVariantMap &parameters = QVariantMap())
QNetworkReply *requestTokenCredentials(QNetworkAccessManager::Operation operation, const QUrl &url, const std::pair<QString, QString> &temporaryToken, const QVariantMap &parameters = 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 使用令牌来表示资源所有者授予客户端的授权。通常,令牌凭证是服务器应资源所有者的请求,在验证资源所有者的身份(通常使用用户名和密码)后签发的。

提出临时凭据请求时,客户端只使用客户端凭据进行身份验证。在提出令牌请求时,客户端使用客户端凭据和临时凭据进行身份验证。客户端收到并存储令牌凭据后,就可以代表资源所有者使用客户端凭据和收到的令牌凭据发出验证请求,从而访问受保护的资源。

成员类型文档

enum class QOAuth1::SignatureMethod

表示用于对请求进行签名的签名方法。

常量说明
QOAuth1::SignatureMethod::Hmac_Sha10HMAC-SHA1签名方法。
QOAuth1::SignatureMethod::Rsa_Sha11RSA-SHA1签名方法(不支持)。
QOAuth1::SignatureMethod::PlainText2PLAINTEXT签名方法。

成员函数文档

[explicit] QOAuth1::QOAuth1(QObject *parent = nullptr)

通过父对象parent 构造一个 QOAuth1 对象。

[explicit] QOAuth1::QOAuth1(QNetworkAccessManager *manager, QObject *parent = nullptr)

构造一个 QOAuth1 对象,其父对象为parent ,使用manager 访问网络。

QOAuth1::QOAuth1(const QString &clientIdentifier, const QString &clientSharedSecret, QNetworkAccessManager *manager, QObject *parent = nullptr)

通过父对象parent 构建一个 QOAuth1 对象,使用manager 访问网络。同时设置clientIdentifierclientSharedSecret ,以签署对网络服务器的调用并识别应用程序。

std::pair<QString, QString> QOAuth1::clientCredentials() const

返回用于标识应用程序和签署向网络服务器发出的请求的一对QString

另请参阅 setClientCredentials()。

QString QOAuth1::clientSharedSecret() const

返回用于对网络服务器请求进行签名的当前共享密文。

另请参阅 setClientSharedSecret() 和clientCredentials()。

[slot] void QOAuth1::continueGrantWithVerifier(const QString &verifier)

使用verifier 继续基于重定向的授权流程。使用带外回复处理程序提供网络服务器提供的验证器时,请调用此函数。

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

重实现:QAbstractOAuth::deleteResource(const QUrl &url, const QVariantMap &parameters).

发送经过验证的 DELETE 请求,并返回一个新的QNetworkReplyurlparameters 用于创建请求。

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

[static protected] QByteArray QOAuth1::generateAuthorizationHeader(const QVariantMap &oauthParams)

使用oauthParams 生成授权标头。

另请参阅 OAuth 1.0 协议:授权标头

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

重实现:QAbstractOAuth::get(const QUrl &url, const QVariantMap &parameters).

发送经过验证的 GET 请求并返回一个新的QNetworkReplyurlparameters 用于创建请求。

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

[override virtual slot] void QOAuth1::grant()

重新实现:QAbstractOAuth::grant().

启动基于重定向的授权流程。

注意: 对于带外回复处理程序,在调用此函数后会收到验证字符串;将其传递给continueGrantWithVerifier() 以继续授权流程。

另请参阅 OAuth 1.0 协议:基于重定向的授权

另请参见 continueGrantWithVerifier()。

重实现:QAbstractOAuth::head(const QUrl &url, const QVariantMap &parameters).

发送一个经过验证的 HEAD 请求,并返回一个新的QNetworkReplyurlparameters 用于创建请求。

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

[static protected] QByteArray QOAuth1::nonce()

生成一个 nonce。

另请参阅 OAuth 1.0 协议:Nonce 和时间戳

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

重实现:QAbstractOAuth::post(const QUrl &url, const QVariantMap &parameters).

发送经过验证的 POST 请求并返回一个新的QNetworkReplyurlparameters 用于创建请求。

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

[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 &parameters = QVariantMap())

重实现:QAbstractOAuth::put(const QUrl &url, const QVariantMap &parameters).

发送经过验证的 PUT 请求并返回一个新的QNetworkReplyurlparameters 用于创建请求。

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

[protected] QNetworkReply *QOAuth1::requestTemporaryCredentials(QNetworkAccessManager::Operation operation, const QUrl &url, const QVariantMap &parameters = QVariantMap())

使用请求方法operation 启动临时凭据请求。请求 URL 为urlparameters 应编码并在请求过程中发送。

另请参阅 OAuth 1.0 协议:临时凭据

[protected] QNetworkReply *QOAuth1::requestTokenCredentials(QNetworkAccessManager::Operation operation, const QUrl &url, const std::pair<QString, QString> &temporaryToken, const QVariantMap &parameters = QVariantMap())

使用operation 请求方法启动令牌凭据请求。请求 URL 为urlparameters 应在请求过程中编码并发送。temporaryToken 字符串对用于识别和签署请求。

另请参阅 OAuth 1.0 协议:令牌凭证

void QOAuth1::setClientCredentials(const std::pair<QString, QString> &clientCredentials)

clientCredentials 设置为一对QString ,用于标识应用程序和签署向网络服务器发出的请求。

另请参阅 clientCredentials()。

void QOAuth1::setClientCredentials(const QString &clientIdentifier, const QString &clientSharedSecret)

设置clientIdentifierclientSharedSecretQString 配对,用于标识应用程序和签署向网络服务器发出的请求。clientIdentifier 用于标识应用程序,clientSharedSecret 用于签署请求。

另请参阅 clientCredentials()。

void QOAuth1::setClientSharedSecret(const QString &clientSharedSecret)

clientSharedSecret 设置为用于签署向网络服务器发出的请求的字符串。

另请参阅 clientSharedSecret() 和setClientCredentials()。

void QOAuth1::setSignatureMethod(QOAuth1::SignatureMethod value)

value 设置为网络服务器请求的签名方法。

另请参阅 signatureMethod().

void QOAuth1::setTemporaryCredentialsUrl(const QUrl &url)

url 设置为请求临时凭证以启动身份验证流程的 URL。

另请参阅 temporaryCredentialsUrl()。

void QOAuth1::setTokenCredentials(const std::pair<QString, QString> &tokenCredentials)

tokenCredentials 设置为一对QString ,用于识别和签署向网络服务器发出的验证请求。

另请参阅 tokenCredentials().

void QOAuth1::setTokenCredentials(const QString &token, const QString &tokenSecret)

tokentokenSecret 设置为一对QString ,用于识别和签署向网络服务器发出的验证请求。客户端收到并存储令牌凭据后,就可以使用客户端凭据和收到的令牌凭据发出验证请求,代表资源所有者访问受保护的资源。

另请参阅 tokenCredentials().

void QOAuth1::setTokenCredentialsUrl(const QUrl &url)

url 设置为请求令牌凭据以继续身份验证流程的 URL。

另请参阅 tokenCredentialsUrl()。

void QOAuth1::setTokenSecret(const QString &tokenSecret)

tokenSecret 设置为当前令牌密文,用于签署对网络服务器的验证调用。

另请参阅 tokenSecret() 和setTokenCredentials()。

[protected] void QOAuth1::setup(QNetworkRequest *request, const QVariantMap &signingParameters, QNetworkAccessManager::Operation operation)

使用signingParametersoperation 登录request

这是一个重载函数。

[protected] void QOAuth1::setup(QNetworkRequest *request, const QVariantMap &signingParameters, const QByteArray &operationVerb)

使用signingParametersoperationVerb 登录request

这是一个重载函数。

QOAuth1::SignatureMethod QOAuth1::signatureMethod() const

返回向网络服务器发出的请求的签名方法。

另请参阅 setSignatureMethod()。

QUrl QOAuth1::temporaryCredentialsUrl() const

返回用于请求临时凭证以启动身份验证流程的 url。

另请参阅 setTemporaryCredentialsUrl()。

std::pair<QString, QString> QOAuth1::tokenCredentials() const

返回一对QString ,用于识别和签署向网络服务器发出的验证请求。

另请参阅 setTokenCredentials()。

QUrl QOAuth1::tokenCredentialsUrl() const

返回用于请求令牌凭据以继续身份验证过程的 URL。

另请参阅 setTokenCredentialsUrl()。

QString QOAuth1::tokenSecret() const

返回当前令牌密文,该密文用于签署向网络服务器发出的验证请求。

另请参阅 setTokenSecret() 和tokenCredentials()。

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