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 = {})
使用
- 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 = {})
使用
- url 作为目标地址
- clientSharedKey 作为用于验证签名的用户令牌
- tokenSecret 作为用于验证签名的协商令牌
- method 作为用于发送请求的 HTTP 方法
- 以及给定的用户parameters 来增强请求。
QOAuth1Signature::QOAuth1Signature(const QOAuth1Signature &other)
创建other 的副本。
QOAuth1Signature::QOAuth1Signature(QOAuth1Signature &&other)
通过“move”构造一个 QOAuth1Signature 实例,并接管other 之前使用的私有数据。
[noexcept] QOAuth1Signature::~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 的引用。
© 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.