1// Copyright (C) 2017 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4//
5// W A R N I N G
6// -------------
7//
8// This file is not part of the Qt API. It exists for the convenience
9// of the Network Access API. This header file may change from
10// version to version without notice, or even be removed.
11//
12// We mean it.
13//
14
15#ifndef QOAUTH1_P_H
16#define QOAUTH1_P_H
17
18#include <private/qabstractoauth_p.h>
19
20#include <QtNetworkAuth/qoauth1.h>
21#include <QtNetworkAuth/qoauthglobal.h>
22
23#include <QtCore/qurl.h>
24#include <QtCore/qobject.h>
25#include <QtCore/qstring.h>
26
27#include <QtNetwork/qnetworkreply.h>
28#include <QtNetwork/qnetworkaccessmanager.h>
29
30#include <utility>
31
32QT_BEGIN_NAMESPACE
33
34class QOAuth1Signature;
35
36class QOAuth1Private : public QAbstractOAuthPrivate
37{
38public:
39 Q_DECLARE_PUBLIC(QOAuth1)
40
41 QOAuth1Private(const std::pair<QString, QString> &clientCredentials,
42 QNetworkAccessManager *networkAccessManager = nullptr);
43
44 void appendCommonHeaders(QVariantMap *headers);
45 void appendSignature(QAbstractOAuth::Stage stage,
46 QVariantMap *headers,
47 const QUrl &url,
48 QNetworkAccessManager::Operation operation,
49 const QMultiMap<QString, QVariant> parameters);
50
51 QNetworkReply *requestToken(QNetworkAccessManager::Operation operation,
52 const QUrl &url,
53 const std::pair<QString, QString> &token,
54 const QVariantMap &additionalParameters);
55
56 QString signatureMethodString() const;
57 QByteArray generateSignature(const QMultiMap<QString, QVariant> &parameters,
58 const QUrl &url,
59 QNetworkAccessManager::Operation operation) const;
60 QByteArray generateSignature(const QMultiMap<QString, QVariant> &parameters,
61 const QUrl &url,
62 const QByteArray &verb) const;
63 QByteArray formatSignature(const QOAuth1Signature &signature) const;
64
65 QVariantMap createOAuthBaseParams() const;
66
67 void _q_onTokenRequestError(QNetworkReply::NetworkError error);
68 void _q_tokensReceived(const QVariantMap &tokens);
69
70 QString clientIdentifierSharedKey;
71 QString tokenSecret;
72 QString verifier;
73 QUrl temporaryCredentialsUrl;
74 QUrl tokenCredentialsUrl;
75 QOAuth1::SignatureMethod signatureMethod = QOAuth1::SignatureMethod::Hmac_Sha1;
76 const QString oauthVersion = QStringLiteral("1.0");
77 bool tokenRequested = false;
78
79 struct OAuth1KeyString
80 {
81 static const QString oauthCallback;
82 static const QString oauthCallbackConfirmed;
83 static const QString oauthConsumerKey;
84 static const QString oauthNonce;
85 static const QString oauthSignature;
86 static const QString oauthSignatureMethod;
87 static const QString oauthTimestamp;
88 static const QString oauthToken;
89 static const QString oauthTokenSecret;
90 static const QString oauthVerifier;
91 static const QString oauthVersion;
92 };
93};
94
95QT_END_NAMESPACE
96
97#endif // QOAUTH1_P_H
98

Provided by KDAB

Privacy Policy
Learn to use CMake with our Intro Training
Find out more

source code of qtnetworkauth/src/oauth/qoauth1_p.h