예제 #1
0
 /// <summary>
 /// Authorizes the specified model.
 /// </summary>
 /// <param name="model">The model.</param>
 public dynamic Authorize(ProviderAndAccessToken model)
 {
     try
     {
         using (HttpClient client = new HttpClient())
         {
             //api to get the data from google.
             client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer",
                                                                                        model.Token);
             var response = client.GetAsync("https://www.googleapis.com/oauth2/v2/userinfo?fields=email%2Cid%2Cname").Result;
             if (response.IsSuccessStatusCode)
             {
                 dynamic userInfo = JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().Result);
                 return(new
                 {
                     id = userInfo.id,
                     userName = userInfo.email != null ? userInfo.email : userInfo.name != null ? userInfo.name : userInfo.id
                 });
             }
             return(new
             {
                 id = string.Empty,
                 userName = string.Empty
             });
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
예제 #2
0
        /// <summary>
        /// Authorizes the specified model.
        /// </summary>
        /// <param name="model">The model.</param>

        public dynamic Authorize(ProviderAndAccessToken model)
        {
            try
            {
                var     fbclient = new Facebook.FacebookClient(model.Token);
                dynamic fb       = fbclient.Get("/me?locale=en_US&fields=name,email");
                return(new
                {
                    id = fb.id,
                    userName = fb.email != null ? fb.email : fb.name != null ? fb.name : fb.id
                });
            }
            catch (Exception)
            {
                throw;
            }
        }