mirror of
https://github.com/redstrate/Astra.git
synced 2025-06-30 07:37:45 +00:00
Fix login after 7.25h2
They're doing something now which rejects invalid machine IDs, which Astra was giving (sorry!) I just copied XIVQuickLauncher's behavior which works.
This commit is contained in:
parent
24d31d05fd
commit
99aa997322
2 changed files with 16 additions and 2 deletions
|
@ -345,8 +345,18 @@ void LauncherCore::buildRequest(const Profile &settings, QNetworkRequest &reques
|
||||||
if (settings.account()->config()->license() == Account::GameLicense::macOS) {
|
if (settings.account()->config()->license() == Account::GameLicense::macOS) {
|
||||||
request.setHeader(QNetworkRequest::UserAgentHeader, QByteArrayLiteral("macSQEXAuthor/2.0.0(MacOSX; ja-jp)"));
|
request.setHeader(QNetworkRequest::UserAgentHeader, QByteArrayLiteral("macSQEXAuthor/2.0.0(MacOSX; ja-jp)"));
|
||||||
} else {
|
} else {
|
||||||
request.setHeader(QNetworkRequest::UserAgentHeader,
|
const auto hashString = QSysInfo::bootUniqueId();
|
||||||
QStringLiteral("SQEXAuthor/2.0.0(Windows 6.2; ja-jp; %1)").arg(QString::fromUtf8(QSysInfo::bootUniqueId())));
|
|
||||||
|
QCryptographicHash hash(QCryptographicHash::Sha1);
|
||||||
|
hash.addData(hashString);
|
||||||
|
|
||||||
|
QByteArray bytes = hash.result();
|
||||||
|
bytes.resize(4);
|
||||||
|
|
||||||
|
auto checkSum = (uint8_t)-(bytes[0] + bytes[1] + bytes[2] + bytes[3]);
|
||||||
|
bytes.prepend(checkSum);
|
||||||
|
|
||||||
|
request.setHeader(QNetworkRequest::UserAgentHeader, QStringLiteral("SQEXAuthor/2.0.0(Windows 6.2; ja-jp; %1)").arg(QString::fromUtf8(bytes.toHex())));
|
||||||
}
|
}
|
||||||
|
|
||||||
request.setRawHeader(QByteArrayLiteral("Accept"),
|
request.setRawHeader(QByteArrayLiteral("Accept"),
|
||||||
|
@ -354,6 +364,8 @@ void LauncherCore::buildRequest(const Profile &settings, QNetworkRequest &reques
|
||||||
"application/x-ms-xbap, */*"));
|
"application/x-ms-xbap, */*"));
|
||||||
request.setRawHeader(QByteArrayLiteral("Accept-Encoding"), QByteArrayLiteral("gzip, deflate"));
|
request.setRawHeader(QByteArrayLiteral("Accept-Encoding"), QByteArrayLiteral("gzip, deflate"));
|
||||||
request.setRawHeader(QByteArrayLiteral("Accept-Language"), QByteArrayLiteral("en-us"));
|
request.setRawHeader(QByteArrayLiteral("Accept-Language"), QByteArrayLiteral("en-us"));
|
||||||
|
request.setRawHeader(QByteArrayLiteral("Connection"), QByteArrayLiteral("Keep-Alive"));
|
||||||
|
request.setRawHeader(QByteArrayLiteral("Cookie"), QByteArrayLiteral("_rsid=\"\""));
|
||||||
}
|
}
|
||||||
|
|
||||||
void LauncherCore::setupIgnoreSSL(QNetworkReply *reply)
|
void LauncherCore::setupIgnoreSSL(QNetworkReply *reply)
|
||||||
|
|
|
@ -265,6 +265,8 @@ QCoro::Task<std::optional<SquareEnixLogin::StoredInfo>> SquareEnixLogin::getStor
|
||||||
auto request = QNetworkRequest(url);
|
auto request = QNetworkRequest(url);
|
||||||
m_launcher.buildRequest(*m_info->profile, request);
|
m_launcher.buildRequest(*m_info->profile, request);
|
||||||
|
|
||||||
|
request.setRawHeader(QByteArrayLiteral("Referer"), m_info->profile->frontierUrl().toUtf8());
|
||||||
|
|
||||||
Utility::printRequest(QStringLiteral("GET"), request);
|
Utility::printRequest(QStringLiteral("GET"), request);
|
||||||
|
|
||||||
const auto reply = m_launcher.mgr()->get(request);
|
const auto reply = m_launcher.mgr()->get(request);
|
||||||
|
|
Loading…
Add table
Reference in a new issue