Пример #1
0
        public async Task <OneOf <AniListAuthorizationResponse, IAniListError> > AuthenticateUser(IAniListAuthConfig config, string code, CancellationToken cToken)
        {
            var client = _httpClientFactory.CreateClient();

            try
            {
                var response = await client.PostAsync(config.AuthTokenUri, new FormUrlEncodedContent(new[]
                {
                    new KeyValuePair <string, string>("client_id", config.ClientId),
                    new KeyValuePair <string, string>("client_secret", config.ClientSecret),
                    new KeyValuePair <string, string>("grant_type", "authorization_code"),
                    new KeyValuePair <string, string>("redirect_uri", config.RedirectUri),
                    new KeyValuePair <string, string>("code", code)
                }));

                response.EnsureSuccessStatusCode();
                var responseContent = await response.Content.ReadAsStringAsync();

                return(JsonConvert.DeserializeObject <AniListAuthorizationResponse>(responseContent));
            }
            catch (Exception e)
            {
                return(new AniListError(0, e.Message, e, null));
            }
        }
Пример #2
0
 public LoginPresenter(IAniListService service, IAniDroidSettings settings,
                       IAniListAuthConfig authConfig, IAniDroidLogger logger) : base(service, settings, logger)
 {
     _authConfig = authConfig;
 }