XX CMake Package
Loading...
Searching...
No Matches
XXAuthProviderOAuth.h
Go to the documentation of this file.
1#ifndef XXAuthProviderOAuthH
2#define XXAuthProviderOAuthH
3
6#include "XXNetworkSettings.h"
7
8#include <QJsonObject>
9#include <QOAuth2AuthorizationCodeFlow>
10
11namespace XX
12{
13 namespace AuthProvider
14 {
18
20 {
21 Q_OBJECT
22
23 public:
24 OAuth(QObject* parent);
25
26 public:
27 void setTokenInfoUrl(const QString url);
28 QJsonObject getTokenInfo(QByteArray token = QByteArray()) const;
29
30 void setStandardFlow(const QString& baseAuthUrl, const QString& clientId, const QString& clientSecret);
31 void setCustomFlow(QOAuth2AuthorizationCodeFlow* oauthFlow);
32 void setFinalRedirect(const QString& url);
33 void setFinalHTML(const QString& html);
34 QOAuth2AuthorizationCodeFlow* getFlow() const;
35
36 protected:
37 enum class State
38 {
39 Initial,
40 AuthUser,
41 Update,
42 Blocked,
43 Ready
44 };
45
47 {
48 public:
51
52 private:
53 OAuth* auth;
54 State previousState;
55 };
56
57 protected:
58 virtual bool
59 update() override;
60 virtual bool authorizeUser();
61
62 virtual void saveRefreshToken(const QString& refreshToken);
63 virtual QString loadRefreshToken();
64
65 private:
66 void initFlow();
67
68 private:
69 QOAuth2AuthorizationCodeFlow* oauthFlow;
70 QMetaObject::Connection grantConnection;
71 QString finalHTML;
72 QString tokenInfoUrl;
73 State state;
74 };
75 } // namespace AuthProvider
76} // namespace XX
77
78#endif // NOT XXAuthProviderOAuthH
#define XXNETWORKOAUTH_DECLSPEC
Definition XXNetworkOAuthExportDef.h:11
State
Definition XXAuthProviderOAuth.h:38
virtual QString loadRefreshToken()
void setCustomFlow(QOAuth2AuthorizationCodeFlow *oauthFlow)
void setFinalHTML(const QString &html)
virtual bool update() override
void setTokenInfoUrl(const QString url)
virtual void saveRefreshToken(const QString &refreshToken)
void setFinalRedirect(const QString &url)
QJsonObject getTokenInfo(QByteArray token=QByteArray()) const
virtual bool authorizeUser()
void setStandardFlow(const QString &baseAuthUrl, const QString &clientId, const QString &clientSecret)
OAuth(QObject *parent)
QOAuth2AuthorizationCodeFlow * getFlow() const
Token(QObject *parent)
Network settings class.
Definition XXNetworkSettings.h:14
Definition XXAuthProviderToken.h:12
Definition XXPopulatedAbstract.h:11