QOAuth1Signature 类

实现 OAuth 1 签名方法。 更多...

头文件 #include <QOAuth1Signature>
CMakefind_package(Qt6 REQUIRED COMPONENTS NetworkAuth)
target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth)
qmakeQT += networkauth

公共类型

枚举类HttpRequestMethod { Head, Get, Put, Post, Delete, …, Unknown }

公共函数

QOAuth1Signature(const QUrl &url = QUrl(), QOAuth1Signature::HttpRequestMethod method = HttpRequestMethod::Post, const QMultiMap<QString, QVariant> &parameters = {})
QOAuth1Signature(const QUrl &url, const QString &clientSharedKey, const QString &tokenSecret, QOAuth1Signature::HttpRequestMethod method = HttpRequestMethod::Post, const QMultiMap<QString, QVariant> &parameters = {})
QOAuth1Signature(const QOAuth1Signature &other)
QOAuth1Signature(QOAuth1Signature &&other)
~QOAuth1Signature()
voidaddRequestBody(const QUrlQuery &body)
QStringclientSharedKey() const
QByteArraycustomMethodString() const
QByteArrayhmacSha1() const
QOAuth1Signature::HttpRequestMethodhttpRequestMethod() const
voidinsert(const QString &key, const QVariant &value)
QList<QString>keys() const
QMultiMap<QString, QVariant>parameters() const
QByteArrayplainText() const
QByteArrayrsaSha1() const
voidsetClientSharedKey(const QString &secret)
voidsetCustomMethodString(const QByteArray &verb)
voidsetHttpRequestMethod(QOAuth1Signature::HttpRequestMethod method)
voidsetParameters(const QMultiMap<QString, QVariant> &parameters)
voidsetTokenSecret(const QString &secret)
voidsetUrl(const QUrl &url)
voidswap(QOAuth1Signature &other)
QVarianttake(const QString &key)
QStringtokenSecret() const
QUrlurl() const
QVariantvalue(const QString &key, const QVariant &defaultValue = QVariant()) const
QOAuth1Signature &operator=(QOAuth1Signature &&other)

静态公有成员

QByteArrayplainText(const QString &clientSharedKey, const QString &tokenSecret)

详细描述

OAuth认证请求可以有两套凭证:一套是通过“oauth_consumer_key”参数传递的,另一套是在“oauth_token”参数中。为了服务器验证请求的真实性和防止未经授权的访问,客户端需要证明它是凭证的合法所有者。这是通过每一套凭证的共享密钥(或RSA密钥)部分来实现的。

OAuth指定了三种方法供客户端证明其对凭证的合法所有权:“HMAC-SHA1”、“RSA-SHA1”和“PLAINTEXT”。每个都生成一个“签名”,用于对请求进行“签名”;前两个使用经过签名数据生成摘要,而最后一个则不是。这里不支持“RSA-SHA1”方法;它将使用RSA密钥而不是与客户端凭证关联的共享密钥。

成员类型文档

enum class QOAuth1Signature::HttpRequestMethod

表示HTTP请求方法。

常量描述
QOAuth1Signature::HttpRequestMethod::Head1HEAD方法。
QOAuth1Signature::HttpRequestMethod::Get2GET方法。
QOAuth1Signature::HttpRequestMethod::Put3PUT方法。
QOAuth1Signature::HttpRequestMethod::Post4POST方法。
QOAuth1Signature::HttpRequestMethod::Delete5DELETE方法。
QOAuth1Signature::HttpRequestMethod::Custom6标识自定义方法。
QOAuth1Signature::HttpRequestMethod::Unknown0方法未设置。

成员函数文档

[显式] QOAuth1Signature::QOAuth1Signature(const QUrl &url = QUrl(), QOAuth1Signature::HttpRequestMethod method = HttpRequestMethod::Post, const QMultiMap<QString, QVariant> &parameters = {})

使用

  • url 作为目标地址
  • method 作为发送请求使用的HTTP方法
  • 以及给定的用户 parameters 来增强请求。

QOAuth1Signature::QOAuth1Signature(const QUrl &url, const QString &clientSharedKey, const QString &tokenSecret, QOAuth1Signature::HttpRequestMethod method = HttpRequestMethod::Post, const QMultiMap<QString, QVariant> &parameters = {})

使用

  • url 作为目标地址
  • clientSharedKey 作为用于验证签名的用户令牌
  • tokenSecret 作为用于验证签名的协商令牌
  • method 作为发送请求使用的HTTP方法
  • 以及给定的用户 parameters 来增强请求。

QOAuth1Signature::QOAuth1Signature(const QOAuth1Signature &other)

创建other的副本。

QOAuth1Signature::QOAuth1Signature(QOAuth1Signature &&other)

通过移动构造一个 QOAuth1Signature 实例,接管 other 正在使用的私有数据。

[noexcept] QOAuth1Signature::~QOAuth1Signature()

销毁 QOAuth1Signature

void QOAuth1Signature::addRequestBody(const QUrlQuery &body)

将请求体body添加到签名中。当POST请求体包含参数时,它们应包含在签名数据中。

QString QOAuth1Signature::clientSharedKey() const

返回用于生成签名的用户密钥。

另请参阅setClientSharedKey

QByteArray QOAuth1Signature::customMethodString() const

返回自定义方法字符串。

另请参阅setCustomMethodStringhttpRequestMethod

QByteArray QOAuth1Signature::hmacSha1() const

使用客户端共享密钥和(如果可用)令牌密钥生成HMAC-SHA1签名。

QOAuth1Signature::HttpRequestMethod QOAuth1Signature::httpRequestMethod() const

返回请求方法。

另请参阅setHttpRequestMethod

void QOAuth1Signature::insert(const QString &key, const QVariant &value)

将新的键值对key, value插入签名中。当POST请求体包含参数时,它们应包含在签名数据中。

QList<QString> QOAuth1Signature::keys() const

检索签名数据中包含的参数键列表。

QMultiMap<QString, QVariant> QOAuth1Signature::parameters() const

返回参数。

另请参阅setParameters

QByteArray QOAuth1Signature::plainText() const

生成PLAINTEXT签名。

[静态] QByteArray QOAuth1Signature::plainText(const QString &clientSharedKey, const QString &tokenSecret)

从客户端密钥clientSharedKey和令牌密钥tokenSecret生成PLAINTEXT签名。

QByteArray QOAuth1Signature::rsaSha1() const

生成RSA-SHA1签名。

注意:目前该方法不受支持。

void QOAuth1Signature::setClientSharedKey(const QString &secret)

secret设置为用于生成签名的用户密钥。

另请参阅 clientSharedKey.

void QOAuth1Signature::setCustomMethodString(const QByteArray &verb)

设置自定义请求方法。将httpRequestMethod 设置为 QOAuth1Signature::HttpRequestMethod::Custom 并存储 verb 以用于签名生成。

注意: 在使用自定义动词时,需要使用此方法。仅设置请求方法将失败,因为签名需要知道实际的动词。

另请参阅 customMethodString(),setHttpRequestMethod() 和 HttpRequestMethod.

void QOAuth1Signature::setHttpRequestMethod(QOAuth1Signature::HttpRequestMethod method)

设置请求 方法

另请参阅 httpRequestMethod.

void QOAuth1Signature::setParameters(const QMultiMap<QString, QVariant> &parameters)

设置 参数

另请参阅 parameters.

void QOAuth1Signature::setTokenSecret(const QString &secret)

设置 秘密 作为生成签名时使用的协商秘密。

另请参阅 tokenSecret.

void QOAuth1Signature::setUrl(const QUrl &url)

设置 URL 为 url

另请参阅 url.

void QOAuth1Signature::swap(QOAuth1Signature &:other)

将签名 other 与此签名进行交换。此操作非常快速且永远不会失败。

QVariant QOAuth1Signature::take(const QString &key)

从签名数据中删除 key 和任何相关值。

QString QOAuth1Signature::tokenSecret() const

返回用于生成签名的协商秘密。

另请参阅 setTokenSecret.

QUrl QOAuth1Signature::url() const

返回 URL。

另请参阅 setUrl.

QVariant QOAuth1Signature::value(const QString &key, const QVariant &defaultValue = QVariant()) const

如果签名数据中包含 key,则返回与 key 关联的值,否则返回 defaultValue

QOAuth1Signature &QOAuth1Signature::operator=(QOAuth1Signature &&other)

移动赋值运算符。

© 2024 Qt公司有限公司。此处包含的文档贡献是各自所有者的版权。提供的文档受版权保护,根据自由软件基金会发布的< يشير إلى GNU自由文档许可证第1.3版许可。Qt以及相应的商标为芬兰和/或其他国家的Qt公司所有。所有其他商标均为其各自所有者的财产。