QOAuth1Signature 类
实现 OAuth 1 签名方法。 更多...
头文件 | #include <QOAuth1Signature> |
CMake | find_package(Qt6 REQUIRED COMPONENTS NetworkAuth) target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth) |
qmake | QT += networkauth |
公共类型
枚举类 | 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 | 方法未设置。 |
成员函数文档
[显式]
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)
通过移动构造一个 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签名。
[静态]
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> ¶meters)
设置 参数。
另请参阅 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公司所有。所有其他商标均为其各自所有者的财产。