diff options
author | Andrew <forkk@forkk.net> | 2013-11-11 12:59:59 -0600 |
---|---|---|
committer | Andrew <forkk@forkk.net> | 2013-11-11 12:59:59 -0600 |
commit | 962639aa6d58d88fae32159ed4e2c70ec120991e (patch) | |
tree | ac87ecb86c09b6daf454b1a63ddbc9c68d3948c8 /logic/auth | |
parent | 52e927a6fdfc013424ef976caa44476008aee6a2 (diff) | |
download | MultiMC-962639aa6d58d88fae32159ed4e2c70ec120991e.tar MultiMC-962639aa6d58d88fae32159ed4e2c70ec120991e.tar.gz MultiMC-962639aa6d58d88fae32159ed4e2c70ec120991e.tar.lz MultiMC-962639aa6d58d88fae32159ed4e2c70ec120991e.tar.xz MultiMC-962639aa6d58d88fae32159ed4e2c70ec120991e.zip |
Added data structures for Mojang Account.
Diffstat (limited to 'logic/auth')
-rw-r--r-- | logic/auth/MojangAccount.cpp | 55 | ||||
-rw-r--r-- | logic/auth/MojangAccount.h | 70 |
2 files changed, 125 insertions, 0 deletions
diff --git a/logic/auth/MojangAccount.cpp b/logic/auth/MojangAccount.cpp new file mode 100644 index 00000000..f796794e --- /dev/null +++ b/logic/auth/MojangAccount.cpp @@ -0,0 +1,55 @@ +/* Copyright 2013 MultiMC Contributors + * + * Authors: Orochimarufan <orochimarufan.x3@gmail.com> + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "MojangAccount.h" + +#include <QUuid> + +MojangAccount::MojangAccount(const QString& username, QObject* parent) : + QObject(parent) +{ + // Generate a client token. + m_clientToken = QUuid::createUuid().toString(); + + m_username = username; +} + +MojangAccount::MojangAccount(const QString& username, const QString& clientToken, + const QString& accessToken, QObject* parent) : + QObject(parent) +{ + m_username = username; + m_clientToken = clientToken; + m_accessToken = accessToken; +} + + +QString MojangAccount::username() const +{ + return m_username; +} + +QString MojangAccount::clientToken() const +{ + return m_clientToken; +} + +QString MojangAccount::accessToken() const +{ + return m_accessToken; +} + diff --git a/logic/auth/MojangAccount.h b/logic/auth/MojangAccount.h new file mode 100644 index 00000000..b7f90659 --- /dev/null +++ b/logic/auth/MojangAccount.h @@ -0,0 +1,70 @@ +/* Copyright 2013 Andrew Okin + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include <QObject> +#include <QString> + +/** + * Object that stores information about a certain Mojang account. + * + * Said information may include things such as that account's username, client token, and access + * token if the user chose to stay logged in. + */ +class MojangAccount : public QObject +{ +Q_OBJECT +public: + /** + * Constructs a new MojangAccount with the given username. + * The client token will be generated automatically and the access token will be blank. + */ + explicit MojangAccount(const QString& username, QObject* parent = 0); + + /** + * Constructs a new MojangAccount with the given username, client token, and access token. + */ + explicit MojangAccount(const QString& username, const QString& clientToken, const QString& accessToken, QObject* parent = 0); + + + /** + * This MojangAccount's username. May be an email address if the account is migrated. + */ + QString username() const; + + /** + * This MojangAccount's client token. This is a UUID used by Mojang's auth servers to identify this client. + * This is unique for each MojangAccount. + */ + QString clientToken() const; + + /** + * This MojangAccount's access token. + * If the user has not chosen to stay logged in, this will be an empty string. + */ + QString accessToken() const; + + /** + * Changes this MojangAccount's access token to the given value. + */ + QString setAccessToken(const QString& token); + +protected: + QString m_username; + QString m_clientToken; + QString m_accessToken; // Blank if not logged in. +}; + |