Доработаны сервисы: уменьшенно кол-во создаваемых объектов
This commit is contained in:
@@ -4,6 +4,7 @@ using PlaylistShared.Api.Entities;
|
||||
using PlaylistShared.Shared.Yandex;
|
||||
using System.Net;
|
||||
using System.Text.Json;
|
||||
using YandexMusic.API;
|
||||
|
||||
namespace PlaylistShared.Api.Services;
|
||||
|
||||
@@ -13,6 +14,7 @@ public class YandexAuthService
|
||||
private readonly ApplicationDbContext _dbContext;
|
||||
|
||||
public YandexApiService Service => _apiService;
|
||||
public YandexMusicApi Api => _apiService.Client.Api;
|
||||
|
||||
public YandexAuthService(YandexApiService apiService, ApplicationDbContext dbContext)
|
||||
{
|
||||
@@ -41,12 +43,11 @@ public class YandexAuthService
|
||||
|
||||
internal async Task<YandexAuthQr> GenerateQrAsync(ApplicationUser user)
|
||||
{
|
||||
var client = _apiService.Client;
|
||||
var qr = await client.GetAuthQRLink();
|
||||
var trackId = client.AuthStorage.AuthToken.TrackId;
|
||||
var csfrToken = client.AuthStorage.AuthToken.CsfrToken;
|
||||
var headerProcessUuid = client.AuthStorage.HeaderToken.ProcessUuid;
|
||||
var headerCsfrToken = client.AuthStorage.HeaderToken.CsfrToken;
|
||||
var qr = await Api.Passport.GetAuthQRLinkAsync();
|
||||
var trackId = Service.Client.AuthStorage.AuthToken.TrackId;
|
||||
var csfrToken = Service.Client.AuthStorage.AuthToken.CsfrToken;
|
||||
var headerProcessUuid = Service.Client.AuthStorage.HeaderToken.ProcessUuid;
|
||||
var headerCsfrToken = Service.Client.AuthStorage.HeaderToken.CsfrToken;
|
||||
|
||||
if (string.IsNullOrEmpty(qr))
|
||||
throw new Exception("Не удалось получить QR-ссылку");
|
||||
@@ -82,24 +83,24 @@ public class YandexAuthService
|
||||
var session = await _dbContext.YandexAuthSessions.FindAsync(sessionId);
|
||||
if (session == null) return null;
|
||||
|
||||
RestoreCookies(_apiService.CookieContainer, session.SerializedCookies);
|
||||
if (_apiService.Client.AuthStorage.AuthToken is null)
|
||||
RestoreCookies(Service.CookieContainer, session.SerializedCookies);
|
||||
if (Service.Client.AuthStorage.AuthToken is null)
|
||||
{
|
||||
_apiService.Client.AuthStorage.AuthToken = new();
|
||||
Service.Client.AuthStorage.AuthToken = new();
|
||||
}
|
||||
|
||||
_apiService.Client.AuthStorage.AuthToken.CsfrToken = session?.CsfrToken ?? "";
|
||||
_apiService.Client.AuthStorage.AuthToken.TrackId = session?.TrackId ?? "";
|
||||
_apiService.Client.AuthStorage.HeaderToken.CsfrToken = session?.HeaderCsfrToken ?? "";
|
||||
_apiService.Client.AuthStorage.HeaderToken.ProcessUuid = session?.HeaderProcessId ?? "";
|
||||
Service.Client.AuthStorage.AuthToken.CsfrToken = session?.CsfrToken ?? "";
|
||||
Service.Client.AuthStorage.AuthToken.TrackId = session?.TrackId ?? "";
|
||||
Service.Client.AuthStorage.HeaderToken.CsfrToken = session?.HeaderCsfrToken ?? "";
|
||||
Service.Client.AuthStorage.HeaderToken.ProcessUuid = session?.HeaderProcessId ?? "";
|
||||
|
||||
var status = await _apiService.Client.CheckQRStatusAsync();
|
||||
var status = await Api.Passport.CheckQRStatusAsync();
|
||||
|
||||
if (status?.State == "otp_auth_finished")
|
||||
{
|
||||
try
|
||||
{
|
||||
var auth = await _apiService.Client.AuthorizeByQR();
|
||||
var auth = await Api.Passport.AuthorizeByQRAsync();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user