private FacebookUserDTO CreateFacebookUserDTO(dynamic payload) { FacebookUserDTO facebookUser = new FacebookUserDTO { FacebookId = payload.id }; if (IsPropertyExist(payload, "email")) { facebookUser.Email = payload.email; } if (IsPropertyExist(payload, "name")) { facebookUser.UserName = payload.name; } return(facebookUser); }
public FacebookUserDTO ValidateAuthToken(string facebookToken) { string url = "https://graph.facebook.com/v2.5/me?fields=id,email,name&access_token=" + facebookToken; using (var client = new HttpClient()) { var task = client.GetAsync(url); task.Wait(); if (task.Result.IsSuccessStatusCode) { var json = task.Result.Content.ReadAsStringAsync().Result; dynamic payload = JObject.Parse(json); FacebookUserDTO userDTO = CreateFacebookUserDTO(payload); return(userDTO); } } return(null); }
public string LoginFacebook(string facebookToken) { string customToken = null; FacebookUserDTO facebookUser = _tokenManager.ValidateAuthToken(facebookToken); if (facebookUser != null) { User user = GetUser(facebookUser.FacebookId); if (user == null) { customToken = Register(new UserLoginDTO() { Email = facebookUser.FacebookId }); } else { customToken = _tokenManager.GenerateToken(user.UserId, user.Email); } } return(customToken); }