Files
Nebula-Auth/SteamLibForked/Account/SteamAuthToken.cs
T
achiez 8ff960189e 1.5.6 Bug fixes and code clean-ups
- 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
2025-05-02 23:29:24 +03:00

50 lines
1.5 KiB
C#

using AchiesUtilities.Models;
using AchiesUtilities.Newtonsoft.JSON.Converters.Special;
using Newtonsoft.Json;
using SteamLib.Authentication;
using SteamLib.Core.Enums;
using SteamLib.Core.Models;
using SteamLib.Web.Converters;
namespace SteamLib.Account;
public readonly struct SteamAuthToken
{
public string Token { get; }
[JsonConverter(typeof(SteamIdToSteam64Converter))]
public SteamId SteamId { get; }
[JsonConverter(typeof(UnixTimeStampConverter))]
public UnixTimeStamp Expires { get; }
public SteamDomain Domain { get; init; }
public SteamAccessTokenType Type { get; }
[JsonIgnore] public bool IsExpired => Expires.Time < DateTime.UtcNow;
[JsonIgnore] public string SignedToken { get; }
public SteamAuthToken(string token, long steamId, UnixTimeStamp expires, SteamDomain domain,
SteamAccessTokenType type)
{
Token = token;
Expires = expires;
Domain = domain;
Type = type;
SteamId = SteamId.FromSteam64(steamId);
SignedToken = SteamTokenHelper.CombineJwtWithSteamId(SteamId.Steam64.Id, Token);
}
[JsonConstructor]
public SteamAuthToken(string token, SteamId steamId, UnixTimeStamp expires, SteamDomain domain,
SteamAccessTokenType type)
{
Token = token;
SteamId = steamId;
Expires = expires;
Domain = domain;
Type = type;
SignedToken = SteamTokenHelper.CombineJwtWithSteamId(SteamId.Steam64.Id, Token);
}
}