From b1e0b7083393165c5dcc7743afc6aab00f62c792 Mon Sep 17 00:00:00 2001 From: Evan Goode Date: Sun, 12 Jan 2025 22:54:25 -0500 Subject: [PATCH] Only send selectedProfile when selecting a profile Some authentication servers (Blessing Skin) care when selectedProfile is sent on POST /refresh but the clientToken is already bound to a profile. We should only include selectedProfile in POST /refresh during the initial "Add authlib-injector account" process when selecting a profile from multiple availableProfiles. For https://github.com/unmojang/FjordLauncher/issues/50 --- launcher/minecraft/auth/steps/YggdrasilStep.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/launcher/minecraft/auth/steps/YggdrasilStep.cpp b/launcher/minecraft/auth/steps/YggdrasilStep.cpp index eb195e9a0..e2f609743 100644 --- a/launcher/minecraft/auth/steps/YggdrasilStep.cpp +++ b/launcher/minecraft/auth/steps/YggdrasilStep.cpp @@ -88,14 +88,17 @@ void YggdrasilStep::refresh() * "requestUser": true/false // request the user structure * } */ - QJsonObject selectedProfile; - selectedProfile.insert("id", m_data->profileId()); - selectedProfile.insert("name", m_data->profileName()); QJsonObject req; req.insert("clientToken", m_data->clientToken()); req.insert("accessToken", m_data->accessToken()); - req.insert("selectedProfile", selectedProfile); + + if (m_didSelectProfile) { + QJsonObject selectedProfile; + selectedProfile.insert("id", m_data->profileId()); + selectedProfile.insert("name", m_data->profileName()); + req.insert("selectedProfile", selectedProfile); + } req.insert("requestUser", false); QJsonDocument doc(req);