mirror of
https://github.com/achiez/NebulaAuth-Steam-Desktop-Authenticator-by-Achies.git
synced 2026-07-25 06:14:31 +00:00
8ff960189e
- Update: Added "Copy Password" to Mafile context menu (if available) - Update: "Save Password" now pre-fills the current password in the "Login Again" dialog when encryption is enabled - Fix: Prevented overlapping confirmation cycles in AutoConfirmer - Fix: Added a Snackbar notification when a confirmation cycle is skipped due to a too frequent timer interval - Fix: Fixed a rare bug where the previous proxy was used instead of the current one during session refresh - Fix: Corrected "Session Permanently Expired" message showing on unrelated errors (e.g. network issues) - UI-Fix: Fixed visual glitch where proxy input appeared non-empty when switching to a mafile-specific proxy - Cleanup: Refactored and cleaned up codebase, improved styling and formatting via ReSharper
59 lines
2.2 KiB
C#
59 lines
2.2 KiB
C#
using System.Net;
|
|
using SteamLib.Core;
|
|
using SteamLib.Exceptions;
|
|
using SteamLib.ProtoCore;
|
|
using SteamLib.ProtoCore.Services;
|
|
|
|
namespace SteamLib.Api.Mobile;
|
|
|
|
public static class SteamMobileAuthenticatorApi
|
|
{
|
|
public static async Task<GetAuthSessionsForAccount_Response> GetAuthSessionsForAccount(HttpClient client,
|
|
string accessToken, CancellationToken cancellationToken = default)
|
|
{
|
|
var req = SteamConstants.STEAM_API + "IAuthenticationService/GetAuthSessionsForAccount/v1?access_token=" +
|
|
accessToken;
|
|
|
|
try
|
|
{
|
|
return await client.GetProto<GetAuthSessionsForAccount_Response>(req, new EmptyMessage(),
|
|
cancellationToken);
|
|
}
|
|
catch (HttpRequestException ex)
|
|
when (ex.StatusCode == HttpStatusCode.Unauthorized)
|
|
{
|
|
throw new SessionInvalidException(SessionInvalidException.GOT_401_MSG, ex);
|
|
}
|
|
}
|
|
|
|
public static async Task<GetAuthSessionInfo_Response> GetAuthSessionInfo(HttpClient client, string accessToken,
|
|
ulong clientId, CancellationToken cancellationToken = default)
|
|
{
|
|
var req = SteamConstants.STEAM_API + "IAuthenticationService/GetAuthSessionInfo/v1?access_token=" + accessToken;
|
|
var reqData = new GetAuthSessionInfo_Request
|
|
{
|
|
ClientId = clientId
|
|
};
|
|
try
|
|
{
|
|
return await client.PostProto<GetAuthSessionInfo_Response>(req, reqData, cancellationToken);
|
|
}
|
|
catch (HttpRequestException ex)
|
|
when (ex.StatusCode == HttpStatusCode.Unauthorized)
|
|
{
|
|
throw new SessionInvalidException(SessionInvalidException.GOT_401_MSG, ex);
|
|
}
|
|
}
|
|
|
|
|
|
public static async Task<bool> UpdateAuthSessionStatus(HttpClient client, string accessToken, string sharedSecret,
|
|
UpdateAuthSessionWithMobileConfirmation_Request request)
|
|
{
|
|
var req = SteamConstants.STEAM_API +
|
|
"IAuthenticationService/UpdateAuthSessionWithMobileConfirmation/v1?access_token=" + accessToken;
|
|
|
|
request.ComputeSignature(sharedSecret);
|
|
await client.PostProtoEnsureSuccess(req, request);
|
|
return true;
|
|
}
|
|
} |