12 #ifndef hifi_DomainAccountManager_h
13 #define hifi_DomainAccountManager_h
15 #include <QtCore/QObject>
16 #include <QtCore/QUrl>
18 #include <DependencyManager.h>
21 struct DomainAccountDetails {
28 QString authedDomainName;
32 class DomainAccountManager :
public QObject,
public Dependency {
35 DomainAccountManager();
37 void setDomainURL(
const QUrl& domainURL);
38 void setAuthURL(
const QUrl& authURL);
39 void setClientID(
const QString& clientID) { _currentAuth.clientID = clientID; }
41 const QString& getUsername() {
return _currentAuth.username; }
42 const QString& getAccessToken() {
return _currentAuth.accessToken; }
43 const QString& getRefreshToken() {
return _currentAuth.refreshToken; }
44 const QString& getAuthedDomainName() {
return _currentAuth.authedDomainName; }
49 Q_INVOKABLE
bool checkAndSignalForAccessToken();
52 void requestAccessToken(
const QString& username,
const QString& password);
53 void requestAccessTokenFinished();
56 void hasLogInChanged(
bool hasLogIn);
57 void authRequired(
const QString& domain);
60 void logoutComplete();
64 bool hasValidAccessToken();
65 bool accessTokenIsExpired();
66 void setTokensFromJSON(
const QJsonObject&,
const QUrl& url);
67 void sendInterfaceAccessTokenToServer();
69 DomainAccountDetails _currentAuth;
70 QHash<QUrl, DomainAccountDetails> _knownAuths;