This commit is contained in:
David Rowe 2020-08-18 16:33:47 +12:00
parent 9bb5add1ca
commit bf60cf5b4c
3 changed files with 29 additions and 28 deletions

View file

@ -7086,7 +7086,7 @@ void Application::updateWindowTitle() const {
bool isMetaverseLoggedIn = accountManager->isLoggedIn();
bool hasDomainLogIn = domainAccountManager->hasLogIn();
bool isDomainLoggedIn = domainAccountManager->isLoggedIn();
QString authedDomain = domainAccountManager->getAuthedDomain();
QString authedDomainName = domainAccountManager->getAuthedDomainName();
QString buildVersion = " - Vircadia - "
+ (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable ? QString("Version") : QString("Build"))
@ -7123,7 +7123,7 @@ void Application::updateWindowTitle() const {
QString domainDetails;
if (hasDomainLogIn) {
if (currentPlaceName == authedDomain && isDomainLoggedIn) {
if (currentPlaceName == authedDomainName && isDomainLoggedIn) {
domainDetails = " (Domain: Logged in as " + domainUsername + ")";
} else {
domainDetails = " (Domain: Not Logged In)";

View file

@ -57,17 +57,19 @@ void DomainAccountManager::setDomainURL(const QUrl& domainURL) {
_authURL = _previousAuthURL;
_clientID = _previousClientID;
_username = _previousUsername;
_access_token = _previousAccessToken;
_refresh_token = _previousRefreshToken;
_domain_name = _previousDomainName;
_accessToken = _previousAccessToken;
_refreshToken = _previousRefreshToken;
_authedDomainName = _previousAuthedDomainName;
// ####### TODO: Refresh OAuth2 access token if necessary.
} else {
_authURL.clear();
_clientID.clear();
_username.clear();
_access_token.clear();
_refresh_token.clear();
_domain_name.clear();
_accessToken.clear();
_refreshToken.clear();
_authedDomainName.clear();
}
}
@ -81,8 +83,8 @@ void DomainAccountManager::setAuthURL(const QUrl& authURL) {
qCDebug(networking) << "DomainAccountManager URL for authenticated requests has been changed to"
<< qPrintable(_authURL.toString());
_access_token = "";
_refresh_token = "";
_accessToken = "";
_refreshToken = "";
}
bool DomainAccountManager::hasLogIn() {
@ -96,8 +98,8 @@ bool DomainAccountManager::isLoggedIn() {
void DomainAccountManager::requestAccessToken(const QString& username, const QString& password) {
_username = username;
_access_token = "";
_refresh_token = "";
_accessToken = "";
_refreshToken = "";
QNetworkRequest request;
@ -136,7 +138,7 @@ void DomainAccountManager::requestAccessTokenFinished() {
if (rootObject.contains("access_token")) {
// Success.
auto nodeList = DependencyManager::get<NodeList>();
_domain_name = nodeList->getDomainHandler().getHostname();
_authedDomainName = nodeList->getDomainHandler().getHostname();
QUrl rootURL = requestReply->url();
rootURL.setPath("");
setTokensFromJSON(rootObject, rootURL);
@ -146,9 +148,9 @@ void DomainAccountManager::requestAccessTokenFinished() {
_previousAuthURL = _authURL;
_previousClientID = _clientID;
_previousUsername = _username;
_previousAccessToken = _access_token;
_previousRefreshToken = _refresh_token;
_previousDomainName = _domain_name;
_previousAccessToken = _accessToken;
_previousRefreshToken = _refreshToken;
_previousAuthedDomainName = _authedDomainName;
// ####### TODO: Handle "keep me logged in".
@ -183,7 +185,7 @@ bool DomainAccountManager::accessTokenIsExpired() {
bool DomainAccountManager::hasValidAccessToken() {
// ###### TODO: wire this up to actually retrieve a token (based on session or storage) and confirm that it is in fact valid and relevant to the current domain.
// QString currentDomainAccessToken = domainAccessToken.get();
QString currentDomainAccessToken = _access_token;
QString currentDomainAccessToken = _accessToken;
// if (currentDomainAccessToken.isEmpty() || accessTokenIsExpired()) {
if (currentDomainAccessToken.isEmpty()) {
@ -205,8 +207,8 @@ bool DomainAccountManager::hasValidAccessToken() {
}
void DomainAccountManager::setTokensFromJSON(const QJsonObject& jsonObject, const QUrl& url) {
_access_token = jsonObject["access_token"].toString();
_refresh_token = jsonObject["refresh_token"].toString();
_accessToken = jsonObject["access_token"].toString();
_refreshToken = jsonObject["refresh_token"].toString();
// ####### TODO: Enable and use these?
// ####### TODO: Protect these per AccountManager?

View file

@ -27,10 +27,10 @@ public:
void setAuthURL(const QUrl& authURL);
void setClientID(const QString& clientID) { _clientID = clientID; }
QString getUsername() { return _username; }
QString getAccessToken() { return _access_token; }
QString getRefreshToken() { return _refresh_token; }
QString getAuthedDomain() { return _domain_name; }
const QString& getUsername() { return _username; }
const QString& getAccessToken() { return _accessToken; }
const QString& getRefreshToken() { return _refreshToken; }
const QString& getAuthedDomainName() { return _authedDomainName; }
bool hasLogIn();
bool isLoggedIn();
@ -39,7 +39,6 @@ public:
public slots:
void requestAccessToken(const QString& username, const QString& password);
void requestAccessTokenFinished();
signals:
@ -62,9 +61,9 @@ private:
QString _clientID;
QString _username;
QString _access_token; // ####... ""
QString _refresh_token; // ####... ""
QString _domain_name; // ####... ""
QString _accessToken;
QString _refreshToken;
QString _authedDomainName;
// ####### TODO: Handle more than one domain.
QUrl _previousDomainURL;
@ -73,7 +72,7 @@ private:
QString _previousUsername;
QString _previousAccessToken;
QString _previousRefreshToken;
QString _previousDomainName;
QString _previousAuthedDomainName;
};
#endif // hifi_DomainAccountManager_h