You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@alkuramshina есть такое предложение по авторизации. Позволяет разделить сессии для разных сервисов (Глагол, Яндекс). Предлагаю обсудить и додумать.
// Хранит кукиpublicinterfaceISessionStorage{publicCookieCollectionGet();publicvoidSave(CookieCollectioncookie);}// Взаимодействует с ISessionStorage и апи яндекса. Подставляет кукиpublicinterfaceIYandexApiInvoker{Task<TOut>GetAsync<TIn,TOut>(Uriuri,TInquery,boolskipAuth,CancellationTokentoken);Task<TOut>PostAsync<TIn,TOut>(Uriuri,TInrequest,boolskipAuth,CancellationTokentoken);}// Взаимодействует с IYandexApiInvoker и отвечает за авторизациюpublicinterfaceIYandexSession{Task<bool>IsAuthorizedAsync();TaskAuthorizeByLoginAsync(AuthByLoginRequestrequest);}// Расширяет функционал IYandexSession для получения токенов от Я.Музыки publicinterfaceIGlagolSession{publicTask<string>GetMusicTokenAsync();}publicclassSessionStorage:ISessionStorage{privatereadonlystring_path;publicSessionStorage(stringpath){_path=path;}publicCookieCollectionGet(){returnnewCookieCollection();}publicvoidSave(CookieCollectioncookies){thrownewNotImplementedException();}}// Реализует IYandexApiInvoker, IYandexSession,// позволяет при запросах к апи яндекса рефрешить авторизацию, незаметно для пользователчяpublicclassYandexApi:IYandexApiInvoker,IYandexSession{privatereadonlyISessionStorage_sessionStorage;privatereadonlyHttpClientHandler_httpClientHandler;privatereadonlyHttpClient_httpClient;publicYandexApi(ISessionStoragesessionStorage){_sessionStorage=sessionStorage;_httpClientHandler=newHttpClientHandler{UseCookies=true,CookieContainer=newCookieContainer()};_httpClient=newHttpClient(_httpClientHandler);}publicTask<TOut>GetAsync<TIn,TOut>(Uriuri,TInquery,boolskipAuth,CancellationTokentoken){thrownewNotImplementedException();}publicTask<TOut>PostAsync<TIn,TOut>(Uriuri,TInrequest,boolskipAuth,CancellationTokentoken){thrownewNotImplementedException();}publicTask<bool>IsAuthorizedAsync(){thrownewNotImplementedException();}publicTaskAuthorizeByLoginAsync(AuthByLoginRequestrequest){thrownewNotImplementedException();}privateTaskAuthorizeByXToken(stringxToken){thrownewNotImplementedException();}}publicclassGlagolSession:IGlagolSession{privatereadonlyIYandexApiInvoker_apiInvoker;publicGlagolSession(IYandexApiInvokerapiInvoker){_apiInvoker=apiInvoker;}publicTask<string>GetMusicTokenAsync(){//return _apiInvoker.GetAsync<string>(url, params);}}
The text was updated successfully, but these errors were encountered:
@alkuramshina есть такое предложение по авторизации. Позволяет разделить сессии для разных сервисов (Глагол, Яндекс). Предлагаю обсудить и додумать.
The text was updated successfully, but these errors were encountered: