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 |
受保护函数
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)
构造一个 QOAuth1 对象,其父对象为parent ,使用manager 访问网络。
QOAuth1::QOAuth1(const QString &clientIdentifier, const QString &clientSharedSecret, QNetworkAccessManager *manager, QObject *parent = nullptr)
通过父对象parent 构建一个 QOAuth1 对象,使用manager 访问网络。同时设置clientIdentifier 和clientSharedSecret ,以签署对网络服务器的调用并识别应用程序。
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 ¶meters = QVariantMap())
重实现:QAbstractOAuth::deleteResource(const QUrl &url, const QVariantMap ¶meters).
发送经过验证的 DELETE 请求,并返回一个新的QNetworkReply 。url 和parameters 用于创建请求。
另请参阅 超文本传输协议 - 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 ¶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()
生成一个 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 ,用于标识应用程序和签署向网络服务器发出的请求。
另请参阅 clientCredentials()。
void QOAuth1::setClientCredentials(const QString &clientIdentifier, const QString &clientSharedSecret)
设置clientIdentifier 和clientSharedSecret 与QString 配对,用于标识应用程序和签署向网络服务器发出的请求。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)
将token 和tokenSecret 设置为一对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)
使用signingParameters 和operation 登录request 。
这是一个重载函数。
[protected]
void QOAuth1::setup(QNetworkRequest *request, const QVariantMap &signingParameters, const QByteArray &operationVerb)
使用signingParameters 和operationVerb 登录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.