QOAuth1Signature Class
实现 OAuth 1 签名方法。更多
头文件: | #include <QOAuth1Signature> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS NetworkAuth) target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth) |
qmake: | QT += networkauth |
公共类型
enum class | HttpRequestMethod { Head, Get, Put, Post, Delete, …, Unknown } |
公共函数
QOAuth1Signature(const QUrl &url = QUrl(), QOAuth1Signature::HttpRequestMethod method = HttpRequestMethod::Post, const QMultiMap<QString, QVariant> ¶meters = {}) | |
QOAuth1Signature(const QUrl &url, const QString &clientSharedKey, const QString &tokenSecret, QOAuth1Signature::HttpRequestMethod method = HttpRequestMethod::Post, const QMultiMap<QString, QVariant> ¶meters = {}) | |
QOAuth1Signature(const QOAuth1Signature &other) | |
QOAuth1Signature(QOAuth1Signature &&other) | |
~QOAuth1Signature() | |
void | addRequestBody(const QUrlQuery &body) |
QString | clientSharedKey() const |
QByteArray | customMethodString() const |
QByteArray | hmacSha1() const |
QOAuth1Signature::HttpRequestMethod | httpRequestMethod() const |
void | insert(const QString &key, const QVariant &value) |
QList<QString> | keys() const |
QMultiMap<QString, QVariant> | parameters() const |
QByteArray | plainText() const |
QByteArray | rsaSha1() const |
void | setClientSharedKey(const QString &secret) |
void | setCustomMethodString(const QByteArray &verb) |
void | setHttpRequestMethod(QOAuth1Signature::HttpRequestMethod method) |
void | setParameters(const QMultiMap<QString, QVariant> ¶meters) |
void | setTokenSecret(const QString &secret) |
void | setUrl(const QUrl &url) |
void | swap(QOAuth1Signature &other) |
QVariant | take(const QString &key) |
QString | tokenSecret() const |
QUrl | url() const |
QVariant | value(const QString &key, const QVariant &defaultValue = QVariant()) const |
QOAuth1Signature & | operator=(QOAuth1Signature &&other) |
静态公共成员
QByteArray | plainText(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::Head | 1 | HEAD 方法。 |
QOAuth1Signature::HttpRequestMethod::Get | 2 | GET 方法 |
QOAuth1Signature::HttpRequestMethod::Put | 3 | PUT 方法 |
QOAuth1Signature::HttpRequestMethod::Post | 4 | POST 方法 |
QOAuth1Signature::HttpRequestMethod::Delete | 5 | DELETE 方法。 |
QOAuth1Signature::HttpRequestMethod::Custom | 6 | 标识自定义方法。 |
QOAuth1Signature::HttpRequestMethod::Unknown | 0 | 未设置方法。 |
成员函数文档
[explicit]
QOAuth1Signature::QOAuth1Signature(const QUrl &url = QUrl(), QOAuth1Signature::HttpRequestMethod method = HttpRequestMethod::Post, const QMultiMap<QString, QVariant> ¶meters = {})
创建一个 QOAuth1Signature,使用
- url 作为目标地址
- method 作为发送请求的 HTTP 方法
- 和给定的用户parameters 来增强请求。
QOAuth1Signature::QOAuth1Signature(const QUrl &url, const QString &clientSharedKey, const QString &tokenSecret, QOAuth1Signature::HttpRequestMethod method = HttpRequestMethod::Post, const QMultiMap<QString, QVariant> ¶meters = {})
创建一个 QOAuth1Signature,使用
- url 作为目标地址
- clientSharedKey 作为用于验证签名的用户令牌
- tokenSecret 作为用于验证签名的协商令牌
- method 作为用于发送请求的 HTTP 方法
- 和给定的用户parameters ,创建一个 QOAuth1Signature。
QOAuth1Signature::QOAuth1Signature(const QOAuth1Signature &other)
创建other 的副本。
QOAuth1Signature::QOAuth1Signature(QOAuth1Signature &&other)
移动-构建一个 QOAuth1Signature 实例,接管other 正在使用的私人数据。
[noexcept]
QOAuth1Signature::~QOAuth1Signature()
void QOAuth1Signature::addRequestBody(const QUrlQuery &body)
将请求body 添加到签名中。当 POST 请求体包含参数时,这些参数也应包含在签名数据中。
QString QOAuth1Signature::clientSharedKey() const
返回用于生成签名的用户密文。
另请参阅 setClientSharedKey()。
QByteArray QOAuth1Signature::customMethodString() const
返回自定义方法字符串。
另请参阅 setCustomMethodString() 和httpRequestMethod()。
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 签名。
[static]
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)
设置请求method 。
另请参阅 httpRequestMethod() 。
void QOAuth1Signature::setParameters(const QMultiMap<QString, QVariant> ¶meters)
设置parameters 。
另请参见 parameters() 。
void QOAuth1Signature::setTokenSecret(const QString &secret)
将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 ,则返回与 相关的值,否则返回defaultValue 。
QOAuth1Signature &QOAuth1Signature::operator=(QOAuth1Signature &&other)
移动将other 赋值给此签名,并返回对QOAuth1Signature 的引用。
© 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.