Files
YandexMusic/YandexMusic.API/Common/AuthStorage.cs
FrigaT a7caf829d3
All checks were successful
Release / pack-and-publish (release) Successful in 34s
Открыл AuthToken
2026-04-19 20:19:41 +03:00

61 lines
2.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using YandexMusic.API.Models.Account;
namespace YandexMusic.API.Common;
/// <summary>
/// Хранилище данных авторизации. Не содержит HTTP-зависимостей.
/// </summary>
public class AuthStorage
{
/// <summary>
/// Флаг, указывающий, авторизован ли пользователь.
/// </summary>
public bool IsAuthorized { get; internal set; }
/// <summary>
/// Идентификатор устройства (используется в заголовках).
/// </summary>
public string DeviceId { get; set; } = "csharp";
/// <summary>
/// OAuth-токен для доступа к API.
/// </summary>
public string Token { get; internal set; } = string.Empty;
/// <summary>
/// Информация об аккаунте пользователя.
/// </summary>
public YAccount User { get; internal set; } = new();
/// <summary>
/// Временный токен доступа (используется в некоторых сценариях авторизации).
/// </summary>
public YAccessToken AccessToken { get; internal set; } = new();
/// <summary>
/// Внутренние данные авторизации (CSRF, track_id и т.д.).
/// </summary>
public YAuthToken AuthToken { get; set; } = new();
/// <summary>
/// Устанавливает флаг авторизации и сохраняет информацию об аккаунте.
/// </summary>
internal void SetAuthorized(YAccount user, string token)
{
User = user ?? throw new ArgumentNullException(nameof(user));
Token = token ?? throw new ArgumentNullException(nameof(token));
IsAuthorized = true;
}
/// <summary>
/// Сбрасывает состояние авторизации.
/// </summary>
internal void ResetAuthorization()
{
User = new YAccount();
Token = string.Empty;
AccessToken = new YAccessToken();
AuthToken = new YAuthToken();
IsAuthorized = false;
}
}