summaryrefslogtreecommitdiffstats
path: root/logic/auth/AuthenticateTask.cpp
diff options
context:
space:
mode:
authorAndrew <forkk@forkk.net>2013-11-13 16:59:50 -0600
committerAndrew <forkk@forkk.net>2013-11-14 12:17:38 -0600
commit9cfd5ae4654a128af5c0ed26d2b1fb0d3a6d96fc (patch)
treec226b1b0c8f453deccb540bf9b541faa9e8f0359 /logic/auth/AuthenticateTask.cpp
parentd84b1a91f494eff3c96cd961ceba9690f31e741e (diff)
downloadMultiMC-9cfd5ae4654a128af5c0ed26d2b1fb0d3a6d96fc.tar
MultiMC-9cfd5ae4654a128af5c0ed26d2b1fb0d3a6d96fc.tar.gz
MultiMC-9cfd5ae4654a128af5c0ed26d2b1fb0d3a6d96fc.tar.lz
MultiMC-9cfd5ae4654a128af5c0ed26d2b1fb0d3a6d96fc.tar.xz
MultiMC-9cfd5ae4654a128af5c0ed26d2b1fb0d3a6d96fc.zip
Add test authentication task.
It doesn't actually do anything with the server's reply yet.
Diffstat (limited to 'logic/auth/AuthenticateTask.cpp')
-rw-r--r--logic/auth/AuthenticateTask.cpp71
1 files changed, 71 insertions, 0 deletions
diff --git a/logic/auth/AuthenticateTask.cpp b/logic/auth/AuthenticateTask.cpp
new file mode 100644
index 00000000..edfdafdb
--- /dev/null
+++ b/logic/auth/AuthenticateTask.cpp
@@ -0,0 +1,71 @@
+
+/* Copyright 2013 MultiMC Contributors
+ *
+ * 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 <logic/auth/AuthenticateTask.h>
+
+#include <logic/auth/MojangAccount.h>
+#include <QJsonDocument>
+#include <QVariant>
+#include <QDebug>
+
+AuthenticateTask::AuthenticateTask(MojangAccount* account, const QString& password, QObject* parent) :
+ YggdrasilTask(account, parent), m_password(password)
+{
+}
+
+QJsonObject AuthenticateTask::getRequestContent() const
+{
+ /*
+ * {
+ * "agent": { // optional
+ * "name": "Minecraft", // So far this is the only encountered value
+ * "version": 1 // This number might be increased
+ * // by the vanilla client in the future
+ * },
+ * "username": "mojang account name", // Can be an email address or player name for
+ // unmigrated accounts
+ * "password": "mojang account password",
+ * "clientToken": "client identifier" // optional
+ * }
+ */
+ QJsonObject req;
+
+ {
+ QJsonObject agent;
+ // C++ makes string literals void* for some stupid reason, so we have to tell it QString... Thanks Obama.
+ agent.insert("name", QString("Minecraft"));
+ agent.insert("version", 1);
+ req.insert("agent", agent);
+ }
+
+ req.insert("username", getMojangAccount()->username());
+ req.insert("password", m_password);
+ req.insert("clientToken", getMojangAccount()->clientToken());
+
+ return req;
+}
+
+bool AuthenticateTask::processResponse(QJsonObject responseData)
+{
+ qDebug() << QJsonDocument(responseData).toVariant().toString();
+ return false;
+}
+
+QString AuthenticateTask::getEndpoint() const
+{
+ return "authenticate";
+}
+