async Task GetUserProfile(Account account, string token, DateTimeOffset expireAt) { var result = new LoginResultDataObject { Token = token, ExpireAt = expireAt }; var request = new OAuth2Request("GET", new Uri("https://www.googleapis.com/oauth2/v2/userinfo"), null, account); var response = await request.GetResponseAsync(); if (response != null && response.StatusCode == HttpStatusCode.OK) { var userJson = response.GetResponseText(); var jobject = JObject.Parse(userJson); result.LoginState = LoginState.Success; result.Email = jobject["email"]?.ToString(); result.FirstName = jobject["given_name"]?.ToString(); result.LastName = jobject["family_name"]?.ToString(); result.Id = jobject["id"]?.ToString(); result.Distributor = "Google"; } else { result.LoginState = LoginState.Failed; result.ErrorString = $"Error: Responce={response}, StatusCode = {response?.StatusCode}"; } SetResult(result); }
public void SetUserToken(VKAccessToken token) { _loginResult = new LoginResultDataObject { Email = token.Email, Token = token.AccessToken, Id = token.UserId, ExpireAt = FromMsDateTime(token.ExpiresIn), }; Task.Run(GetUserInfo); }
public Task <RequestResult <AuthSuccessResponse> > LoginInApi(LoginResultDataObject loginResult, CancellationToken cts) { return(MakeRequest(ct => _identityAPI.LoginAsync(loginResult, ct), cts)); }
void SetResult(LoginResultDataObject result) { _completionSource?.TrySetResult(result); _completionSource = null; }
public void Logout() { _loginResult = null; _completionSource = null; VKSdk.Logout(); }