| 18 | } |
| 19 | |
| 20 | void LauncherLoginStep::perform() { |
| 21 | auto requestURL = "https://api.minecraftservices.com/launcher/login"; |
| 22 | auto uhs = m_data->mojangservicesToken.extra["uhs"].toString(); |
| 23 | auto xToken = m_data->mojangservicesToken.token; |
| 24 | |
| 25 | QString mc_auth_template = R"XXX( |
| 26 | { |
| 27 | "xtoken": "XBL3.0 x=%1;%2", |
| 28 | "platform": "PC_LAUNCHER" |
| 29 | } |
| 30 | )XXX"; |
| 31 | auto requestBody = mc_auth_template.arg(uhs, xToken); |
| 32 | |
| 33 | QNetworkRequest request = QNetworkRequest(QUrl(requestURL)); |
| 34 | request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); |
| 35 | request.setRawHeader("Accept", "application/json"); |
| 36 | AuthRequest *requestor = new AuthRequest(this); |
| 37 | connect(requestor, &AuthRequest::finished, this, &LauncherLoginStep::onRequestDone); |
| 38 | requestor->post(request, requestBody.toUtf8()); |
| 39 | qDebug() << "Getting Minecraft access token..."; |
| 40 | } |
| 41 | |
| 42 | void LauncherLoginStep::rehydrate() { |
| 43 | // TODO: check the token validity |