diff --git a/Plugins/RSBot.General/Components/RuSroAuthService.cs b/Plugins/RSBot.General/Components/RuSroAuthService.cs index 841dbe52..2c163501 100644 --- a/Plugins/RSBot.General/Components/RuSroAuthService.cs +++ b/Plugins/RSBot.General/Components/RuSroAuthService.cs @@ -38,8 +38,6 @@ public static async Task Auth() return false; } - Log.Debug(selectedAccount?.Username); - string username = selectedAccount.Username; string password = selectedAccount.Password; @@ -119,6 +117,11 @@ public static async Task TokenResponse(string username, string password) var parameters = new List>(); string refreshToken = GlobalConfig.Get("RSBot.RuSro.refreshToken"); string accessToken = GlobalConfig.Get("RSBot.RuSro.accessToken"); + string sessionId = GlobalConfig.Get("RSBot.RuSro.sessionId"); + string endpoint = "https://launcherbff.ru.4game.com/connect/token"; + + HttpContent tokenRequestContent = null; + if ( !string.IsNullOrEmpty(refreshToken) && !string.IsNullOrEmpty(accessToken) @@ -135,11 +138,18 @@ public static async Task TokenResponse(string username, string password) parameters.Add(new KeyValuePair("secure", "true")); parameters.Add(new KeyValuePair("grant_type", "password")); } - var tokenRequestContent = new FormUrlEncodedContent(parameters); + tokenRequestContent = new FormUrlEncodedContent(parameters); var hwid = GlobalConfig.Get("RSBot.RuSro.hwid", randomHwid); var launcherId = GlobalConfig.Get("RSBot.RuSro.launcherid", randomLauncherId); + if (!string.IsNullOrEmpty(sessionId) && string.IsNullOrEmpty(refreshToken) && string.IsNullOrEmpty(accessToken)) + { + //Instead of POST application/json with sessionId to https://launcherbff.ru.4game.com/api/guard/accesscodes/resend + hwid = randomHwid; + launcherId = randomLauncherId; + } + GlobalConfig.Set("RSBot.RuSro.hwid", hwid); GlobalConfig.Set("RSBot.RuSro.launcherid", launcherId); GlobalConfig.Save(); @@ -147,15 +157,17 @@ public static async Task TokenResponse(string username, string password) Log.Debug($"HWID: {hwid}"); Log.Debug($"Launcher ID: {launcherId}"); + client.DefaultRequestHeaders.Remove("Hardware-Id"); + client.DefaultRequestHeaders.Remove("Launcher-Id"); client.DefaultRequestHeaders.Add("Hardware-Id", hwid); client.DefaultRequestHeaders.Add("Launcher-Id", launcherId); - var tokenResponse = await client.PostAsync( - "https://launcherbff.ru.4game.com/connect/token", - tokenRequestContent - ); - var tokenResponseContent = await tokenResponse.Content.ReadAsStringAsync(); - return tokenResponseContent; + using (tokenRequestContent) + { + var tokenResponse = await client.PostAsync(endpoint, tokenRequestContent); + var tokenResponseContent = await tokenResponse.Content.ReadAsStringAsync(); + return tokenResponseContent; + } } private static async Task GetAccessTokenAsync(string username, string password)