public async Task <LoginResult> AuthenticateAsync(FacebookAccount account, RemoteUser user) { FacebookUserInfo facebookUser = GetFacebookUserInfo(account.Token); if (!Validate(facebookUser, account.FacebookUserId, account.Email)) { return(new LoginResult { Status = false, Message = "Access is denied" }); } LoginResult result = FacebookSignIn.SignIn(account.FacebookUserId, account.Email, account.OfficeId, facebookUser.Name, account.Token, user.Browser, user.IpAddress, account.Culture); if (result.Status) { if (!Registration.HasAccount(account.Email)) { string template = "~/Catalogs/{catalog}/Areas/Frapid.Account/EmailTemplates/welcome-3rd-party.html"; WelcomeEmail welcomeEmail = new WelcomeEmail(facebookUser, template, ProviderName); await welcomeEmail.SendAsync(); } } return(result); }
public Task <FacebookUserInfo> GetUserInfo() { var keys = new object [] { "fields" }; var values = new object [] { "id,first_name,last_name,email" }; string version = new GraphRequest("/me", null).Version; string httpMethod = new GraphRequest("/me", null).HTTPMethod; GraphRequest graphRequest = new GraphRequest("/me", NSDictionary.FromObjectsAndKeys(values, keys), AccessToken.CurrentAccessToken.TokenString, version, httpMethod); var tcs = new TaskCompletionSource <FacebookUserInfo>(); graphRequest.Start((GraphRequestConnection connection, NSObject result, NSError error) => { if (error == null) { tcs.TrySetResult(FacebookUserInfo.CreateFrom(((NSDictionary)result).Select(v => new KeyValuePair <string, string>(v.Key.ToString(), v.Value.ToString())).ToDictionary(v => v.Key, v => v.Value))); } else { tcs.SetException(new NSErrorException(error)); } }); return(tcs.Task); }
public void OnPlayerLoginFacebook(bool isSuccessful) { if (playerData == null) { playerData = new PlayerData(); } if (isSuccessful) { playerFacebookInfo = FacebookHelper.Instance.UserInfo; playerData.FacebookID = playerFacebookInfo.userID; playerData.FacebookName = playerFacebookInfo.userName; playerData.FacebookFriends = playerFacebookInfo.userFriends; playerData.LogAllInfos(); // Update player's facebook info (name, friends) to database UpdatePlayerFacebookInfoToDatabase(); } else { playerData.FacebookID = ""; playerData.FacebookName = "Anonymous Player"; playerData.FacebookFriends = ""; } }
public async Task <IActionResult> FacebookLogin([FromBody] FacebookUserInfo userInfo) { try { string newGender = _resourceForGender[userInfo.Gender].Value; userInfo.Gender = newGender; var user = await _authService.FacebookLoginAsync(userInfo); if (user == null) { return(BadRequest()); } await AddEntryMembershipDate(user.Id); var generatedToken = await _jwtService.GenerateJWTTokenAsync(user); return(Ok(new { token = generatedToken })); } catch (Exception exc) { _loggerService.LogError(exc.Message); } return(BadRequest()); }
public string ShowFacebookUserRelationWindow(string userID) { try { //Process authorization if (!ProcessAuthorization(HttpContext.Current)) { AccessDenied(HttpContext.Current); return(null); } FacebookApiInfo apiInfo = FacebookApiHelper.GetFacebookApiInfoForCurrentUser(); if (apiInfo == null) { throw new SocialMediaAccountNotFound(SocialMediaResource.SocialMediaAccountNotFoundFacebook); } FacebookDataProvider provider = new FacebookDataProvider(apiInfo); FacebookUserInfo user = provider.LoadUserInfo(userID); return(GetFacebookUserInfoPage(user)); } catch (Exception ex) { throw ProcessError(ex, "ShowTwitterUserRelationWindow"); } }
public async Task <UserDTO> FacebookLoginAsync(FacebookUserInfo facebookUser) { var user = await _userManager.FindByEmailAsync(facebookUser.Email); if (user == null) { user = new User { SocialNetworking = true, UserName = facebookUser.Email ?? facebookUser.UserId, FirstName = facebookUser.Name.Split(' ')[0], Email = facebookUser.Email ?? "*****@*****.**", LastName = facebookUser.Name.Split(' ')[1], ImagePath = "default_user_image.png", EmailConfirmed = true, RegistredOn = DateTime.Now, UserProfile = new UserProfile() { Birthday = DateTime.Parse(facebookUser.Birthday, CultureInfo.InvariantCulture), GenderID = _repoWrapper.Gender.FindByCondition(x => x.Name == facebookUser.Gender).FirstOrDefault()?.ID, } }; var createResult = await _userManager.CreateAsync(user); if (createResult.Succeeded && user.Email != "*****@*****.**") { await _emailConfirmation.SendEmailAsync(user.Email, "Повідомлення про реєстрацію", "Ви зареєструвались в системі EPlast використовуючи свій Facebook-акаунт. ", "Адміністрація сайту EPlast"); } await _userManager.AddToRoleAsync(user, "Прихильник"); } await _signInManager.SignInAsync(user, isPersistent : false); return(_mapper.Map <User, UserDTO>(user)); }
private void OnRefreshScoreCallBack(IResult result) { IDictionary <string, object> data = result.ResultDictionary; if (!data.ContainsKey("data")) { return; } List <object> dataList = (List <object>)data["data"]; m_RankDataTimeRecorder.RecordRefreshTime(); for (int i = dataList.Count - 1; i >= 0; --i) { var entry = (Dictionary <string, object>)dataList[i]; var user = (Dictionary <string, object>)entry["user"]; string userID = GetStringSafety(user, "id"); if (string.IsNullOrEmpty(userID)) { continue; } FacebookUserInfo dataBase = m_Mgr.GetUserBase(userID, true); dataBase.gameSocre = Convert.ToInt32(entry["score"]); dataBase.userName = GetStringSafety(user, "name"); } m_Mgr.RebuildGamerUserInfoList(); }
public async Task FacebookLoginAsync_IsNull() { //Arrange var user = new User(); var userDto = new UserDTO(); var userId = Guid.NewGuid().ToString(); var facebookUser = new FacebookUserInfo() { Email = "*****@*****.**", UserId = userId, Name = "John Gasiuk", Birthday = "11.08.2000", Gender = "female" }; _repoWrapper.SetupGet(x => x.Gender).Returns(_gender.Object); var genders = new Gender[] { new Gender() { ID = 3 } }.AsQueryable(); _gender.Setup(x => x.FindByCondition(a => a.Name == facebookUser.Gender)) .Returns(genders); user = new User { SocialNetworking = true, UserName = facebookUser.Email ?? facebookUser.UserId, FirstName = facebookUser.Name.Split(' ')[0], Email = facebookUser.Email ?? "*****@*****.**", LastName = facebookUser.Name.Split(' ')[1], ImagePath = "default_user_image.png", EmailConfirmed = true, RegistredOn = DateTime.Now, UserProfile = new UserProfile { Birthday = DateTime.Parse(facebookUser.Birthday, CultureInfo.InvariantCulture), GenderID = 3 } }; _userManager.Setup(x => x.FindByEmailAsync(facebookUser.Email)) .ReturnsAsync((User)null); _userManager.Setup(x => x.CreateAsync(It.IsAny <User>())) .ReturnsAsync(IdentityResult.Failed(new IdentityError { Code = "500", Description = "456" })); _mapper.Setup(x => x.Map <User, UserDTO>(user)).Returns(userDto); //Act var result = await _authService.FacebookLoginAsync(facebookUser); //Assert Assert.IsNotNull(result); }
public FacebookUserInfo GetUserBase(string userID) { FacebookUserInfo data = null; if (m_UserInfoDic.TryGetValue(userID, out data)) { return(data); } return(null); }
void Awake() { if (userInfo == null) { userInfo = new FacebookUserInfo(); } if (!FB.IsInitialized) { FB.Init(SetInit, OnHideUnity); } }
private void UserDataCallBack(FBResult result) { if (result.Error != null) { Debug.LogWarning(result.Error); dispatch(FacebookEvents.USER_DATA_FAILED_TO_LOAD, result); return; } _userInfo = new FacebookUserInfo(result.Text); dispatch(FacebookEvents.USER_DATA_LOADED, result); }
private void OnUserInfoDownloadedEvent() { _currentUser = _fbManager.CurrentUserFacebookUserInfo; if (_currentUser.ProfilePicture == null) { _currentUser.OnImageLoaded += OnImageLoaded; } else { _characterImageComponent.sprite = _currentUser.ProfilePicture; } }
protected void getfrient_Click(object sender, EventArgs e) { FacebookUserInfo fbUserInfo = new FacebookUserInfo(); string accessToken = Request.Cookies["FacebookUserInfo"].Values["accessToken"]; JavaScriptSerializer js = new JavaScriptSerializer(); var jsSerialize = js.Deserialize<FacebookGetFrientList.firients>(fbUserInfo.getUserFrientList(accessToken)); foreach (var item in jsSerialize.data) { Response.Write(item.id + " " + item.name + " " + item.link + " " + item.picture + "<br/>"); } }
public async Task <FacebookUserInfo> FacebookLogin(string accessToken) { // Verify token is valid. HttpResponseMessage verifyToken = await httpClient.GetAsync($"debug_token?input_token={accessToken}&access_token={config.Value.AppId}|{config.Value.AppSecret}"); if (!verifyToken.IsSuccessStatusCode) { return(null); } FacebookUserInfo result = await GetAsync <FacebookUserInfo>(accessToken, "me", "fields=name,email,picture.width(100).height(100)"); return(result); }
private void UserDataCallBack(FBResult result) { if (result.Error != null) { Debug.LogWarning(result.Error); } else { _userInfo = new FacebookUserInfo(result.Text); } OnUserDataRequestCompleteAction(result); }
private string GetFacebookUserInfoPage(FacebookUserInfo user) { Page page = new Page(); HtmlForm form = new HtmlForm(); form.EnableViewState = false; FacebookUserInfoView ctrl = (FacebookUserInfoView)page.LoadControl(PathProvider.GetFileStaticRelativePath("SocialMedia/FacebookUserInfoView.ascx")); ctrl.UserInfo = user; form.Controls.Add(ctrl); page.Controls.Add(form); return(RenderPage(page)); }
public async Task <IActionResult> LoginFacebookWithAccessToken([FromBody] GoogleAccessToken body) { FacebookUserInfo userInfo = null; if (MockOn && body.AccessToken == MockToken) // get value from config file { userInfo = new FacebookUserInfo(isMockuser: true); } else { HttpClient client = new HttpClient(); // 1.generate an app access token (string, string)[] appAccessTokenRequestParameters =
public void ParceFirendsData(string data) { _firends = new Dictionary <string, FacebookUserInfo>(); IDictionary JSON = ANMiniJSON.Json.Deserialize(data) as IDictionary; IDictionary f = JSON["friends"] as IDictionary; IList flist = f["data"] as IList; for (int i = 0; i < flist.Count; i++) { FacebookUserInfo user = new FacebookUserInfo(flist[i] as IDictionary); _firends.Add(user.id, user); } }
public FacebookUserInfo GetUserBase(string userID, bool createForce) { FacebookUserInfo data = GetUserBase(userID); if (createForce && data == null) { data = new FacebookUserInfo(); m_UserInfoDic.Add(userID, data); m_AllUserInfoList.Add(data); data.userID = userID; } return(data); }
private void UserDataCallBack(FBResult result) { if (result.Error != null) { Debug.LogWarning(result.Error); dispatch(FacebookEvents.USER_DATA_FAILED_TO_LOAD, result); } else { _userInfo = new FacebookUserInfo(result.Text); dispatch(FacebookEvents.USER_DATA_LOADED, result); } OnUserDataRequestCompleteAction(result); }
public void SetData(FacebookUserInfo data, int index) { m_SelfBackGround.color = index % 2 == 0 ? m_FirstColor : m_ScenedColor; if (index < 3) { m_RankIcon.sprite = m_CrownImage[index].sprite; m_NameLabel.gameObject.SetActive(false); m_RankIcon.gameObject.SetActive(true); } else { m_RankIcon.gameObject.SetActive(false); m_NameLabel.gameObject.SetActive(true); } m_RankNum.text = "No." + (index + 1).ToString(); m_NameLabel.text = data.userName; m_Icon.userBase = data; m_MaxScore.text = data.gameSocre.ToString(); }
public void SetItem(object userInfo, UIListType listItemType) { _userInfo = userInfo as FacebookUserInfo; if (userInfo != null) { _userNameText.text = _userInfo.firstName; if (_userInfo.ProfilePicture != null) { _userIcon.sprite = _userInfo.ProfilePicture; } else { _userInfo.OnImageLoaded += () => { _userIcon.sprite = _userInfo.ProfilePicture; }; } } }
public void OnCompleted(GraphResponse response) { if (response.Error == null) { Org.Json.JSONArray userInfoKeys = response.JSONObject.Names(); Dictionary <string, string> userInfo = new Dictionary <string, string>(); for (int i = 0; i < userInfoKeys.Length(); i++) { userInfo.Add(userInfoKeys.Get(i).ToString(), response.JSONObject.GetString(userInfoKeys.Get(i).ToString())); } _taskCompletionSource.TrySetResult(FacebookUserInfo.CreateFrom(userInfo)); } else { _taskCompletionSource.TrySetException(response.Error.Exception); } }
public void ParceFriendsData(string data) { Debug.Log("ParceFriendsData"); Debug.Log(data); try { _friends = new Dictionary <string, FacebookUserInfo>(); IDictionary JSON = ANMiniJSON.Json.Deserialize(data) as IDictionary; IDictionary f = JSON["friends"] as IDictionary; IList flist = f["data"] as IList; for (int i = 0; i < flist.Count; i++) { FacebookUserInfo user = new FacebookUserInfo(flist[i] as IDictionary); _friends.Add(user.id, user); } } catch (System.Exception ex) { Debug.LogWarning("Parceing Friends Data failed"); Debug.LogWarning(ex.Message); } }
public async Task <UserDTO> FacebookLoginAsync(FacebookUserInfo facebookUser) { var user = await _userManager.FindByEmailAsync(facebookUser.Email); if (user == null) { user = new User { SocialNetworking = true, UserName = facebookUser.Email ?? facebookUser.UserId, FirstName = facebookUser.Name.Split(' ')[0], Email = facebookUser.Email ?? "*****@*****.**", LastName = facebookUser.Name.Split(' ')[1], ImagePath = "default_user_image.png", EmailConfirmed = true, RegistredOn = DateTime.Now, UserProfile = new UserProfile { Birthday = DateTime.Parse(facebookUser.Birthday, CultureInfo.InvariantCulture), GenderID = _repoWrapper .Gender .FindByCondition(x => x.Name == facebookUser.Gender) .FirstOrDefault()?.ID, } }; var createResult = await _userManager.CreateAsync(user); if (createResult.Succeeded && user.Email != "*****@*****.**") { var emailContent = _emailContentService.GetAuthFacebookRegisterEmail(); await _emailSendingService.SendEmailAsync(user.Email, emailContent.Subject, emailContent.Message, emailContent.Title); } await _userManager.AddToRoleAsync(user, Roles.RegisteredUser); } await _signInManager.SignInAsync(user, false, null); return(_mapper.Map <User, UserDTO>(user)); }
public async Task FacebookLoginAsync_IsNotNull() { //Arrange var user = new User(); var userDto = new UserDTO(); var userId = Guid.NewGuid().ToString(); var facebookUser = new FacebookUserInfo() { Email = "*****@*****.**", UserId = userId, Name = "John", Birthday = "11.08.2000" }; _userManager.Setup(x => x.FindByEmailAsync(facebookUser.Email)) .ReturnsAsync(user); _mapper.Setup(x => x.Map <User, UserDTO>(user)).Returns(userDto); //Act var result = await _authService.FacebookLoginAsync(facebookUser); //Assert Assert.IsNotNull(result); Assert.AreEqual(result, userDto); }
private int SortComparor(FacebookUserInfo a, FacebookUserInfo b) { return(b.gameSocre - a.gameSocre); }
public void OnPlayerLoginFacebook(bool isSuccessful) { if (playerData == null) { playerData = new PlayerData(); } if (isSuccessful) { playerFacebookInfo = FacebookHelper.Instance.UserInfo; playerData.FacebookID = playerFacebookInfo.userID; playerData.FacebookName = playerFacebookInfo.userName; playerData.FacebookFriends = playerFacebookInfo.userFriends; playerData.LogAllInfos (); // Update player's facebook info (name, friends) to database UpdatePlayerFacebookInfoToDatabase(); } else { playerData.FacebookID = ""; playerData.FacebookName = "Anonymous Player"; playerData.FacebookFriends = ""; } }
private bool Validate(FacebookUserInfo user, string id, string email) { return(user.Id == id && user.Email == email); }
void Awake() { if (userInfo == null) { userInfo = new FacebookUserInfo (); } if (!FB.IsInitialized) { FB.Init (SetInit, OnHideUnity); } }
/// <summary> /// Validate provided username and password when the grant_type is set to "password". /// </summary> /// <param name="context"></param> /// <returns></returns> public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { if (context.OwinContext.Request.Headers["Provider"] != null) { if (context.OwinContext.Request.Headers["Provider"].ToLower() == "facebook" && context.OwinContext.Request.Headers["access_token"] != null) { var accessToken = context.OwinContext.Request.Headers["access_token"]; var client = new RestClient("https://graph.facebook.com/"); var request = new RestRequest("me", Method.GET); request.AddQueryParameter("fields", "id,name,email,picture.width(2000).height(2000)"); request.AddQueryParameter("access_token", accessToken); var response = client.Execute(request); if (response.StatusCode == HttpStatusCode.OK) { var content = JObject.Parse(response.Content); var userInfo = new FacebookUserInfo() { id = content["id"].ToString() }; if (content["name"] != null) { userInfo.name = content["name"].ToString(); } if (content["email"] != null) { userInfo.email = content["email"].ToString(); } if (content["picture"]["data"]["url"] != null) { userInfo.avatar = content["picture"]["data"]["url"].ToString(); } PregnancyEntity connect = new PregnancyEntity(); preg_user user = connect.preg_user.Where(c => c.uid == userInfo.id && c.social_type_id == (int)SysConst.SocialTypes.facebook).FirstOrDefault(); if (user != null) { //user.email = userInfo.email; //user.first_name = userInfo.name; user.time_last_login = DateTime.Now; connect.SaveChanges(); } else { user = new preg_user(); user.uid = userInfo.id; user.email = userInfo.email; user.first_name = userInfo.name; user.avatar = userInfo.avatar; user.social_type_id = (int)SysConst.SocialTypes.facebook; user.time_created = DateTime.Now; connect.preg_user.Add(user); SysMethod.createAccountNop(user); connect.SaveChanges(); user = connect.preg_user.Where(c => c.uid == userInfo.id && c.social_type_id == (int)SysConst.SocialTypes.facebook).FirstOrDefault(); } preg_auth auth = connect.preg_auth.Where(c => c.user_id == user.id).FirstOrDefault(); if (auth == null) { auth = new preg_auth() { user_id = user.id }; connect.preg_auth.Add(auth); } auth.token = context.OwinContext.Request.Headers["access_token"]; connect.SaveChanges(); var identity = new ClaimsIdentity(context.Options.AuthenticationType); identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.social.ToString())); identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.user.ToString())); identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.dev.ToString())); identity.AddClaim(new Claim("id", user.id.ToString())); context.Validated(identity); } else { context.SetError("Invalid grant", SysConst.LOGIN_SOCIAL_FAILED); return; } } else if (context.OwinContext.Request.Headers["Provider"].ToLower() == "google" && context.OwinContext.Request.Headers["access_token"] != null) { var accessToken = context.OwinContext.Request.Headers["access_token"]; var client = new RestClient("https://www.googleapis.com/oauth2/v3/"); var request = new RestRequest("tokeninfo", Method.GET); request.AddQueryParameter("id_token", accessToken); var response = client.Execute(request); if (response.StatusCode == HttpStatusCode.OK) { var content = JObject.Parse(response.Content); var userInfo = new GoogleUserInfo() { sub = content["sub"].ToString() }; if (content["name"] != null) { userInfo.name = content["name"].ToString(); } if (content["email"] != null) { userInfo.email = content["email"].ToString(); } if (content["picture"] != null) { userInfo.picture = content["picture"].ToString(); } if (content["given_name"] != null) { userInfo.given_name = content["given_name"].ToString(); } if (content["family_name"] != null) { userInfo.family_name = content["family_name"].ToString(); } PregnancyEntity connect = new PregnancyEntity(); preg_user user = connect.preg_user.Where(c => c.uid == userInfo.sub && c.social_type_id == (int)SysConst.SocialTypes.google).FirstOrDefault(); if (user != null) { //user.email = userInfo.email; //user.first_name = userInfo.name; //user.avatar = userInfo.picture; user.time_last_login = DateTime.Now; connect.SaveChanges(); } else { user = new preg_user(); user.uid = userInfo.sub; user.email = userInfo.email; user.first_name = userInfo.name; user.avatar = userInfo.picture; user.social_type_id = (int)SysConst.SocialTypes.google; user.time_created = DateTime.Now; connect.preg_user.Add(user); SysMethod.createAccountNop(user); connect.SaveChanges(); user = connect.preg_user.Where(c => c.uid == userInfo.sub && c.social_type_id == (int)SysConst.SocialTypes.google).FirstOrDefault(); } preg_auth auth = connect.preg_auth.Where(c => c.user_id == user.id).FirstOrDefault(); if (auth == null) { auth = new preg_auth() { user_id = user.id }; connect.preg_auth.Add(auth); } auth.token = context.OwinContext.Request.Headers["access_token"]; connect.SaveChanges(); var identity = new ClaimsIdentity(context.Options.AuthenticationType); identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.social.ToString())); identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.user.ToString())); identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.dev.ToString())); identity.AddClaim(new Claim("id", user.id.ToString())); context.Validated(identity); } else { var client2 = new RestClient("https://www.googleapis.com/oauth2/v1/"); var request2 = new RestRequest("userinfo", Method.GET); request2.AddQueryParameter("alt", "json"); request2.AddQueryParameter("access_token", accessToken); var response2 = client.Execute(request2); if (response2.StatusCode == HttpStatusCode.OK) { var content = JObject.Parse(response2.Content); var userInfo = new GoogleUserInfo() { sub = content["sub"].ToString() }; if (content["name"] != null) { userInfo.name = content["name"].ToString(); } if (content["email"] != null) { userInfo.email = content["email"].ToString(); } if (content["picture"] != null) { userInfo.picture = content["picture"].ToString(); } if (content["given_name"] != null) { userInfo.given_name = content["given_name"].ToString(); } if (content["family_name"] != null) { userInfo.family_name = content["family_name"].ToString(); } PregnancyEntity connect = new PregnancyEntity(); preg_user user = connect.preg_user.Where(c => c.uid == userInfo.sub && c.social_type_id == (int)SysConst.SocialTypes.google).FirstOrDefault(); if (user != null) { //user.email = userInfo.email; //user.first_name = userInfo.name; //user.avatar = userInfo.picture; user.time_last_login = DateTime.Now; connect.SaveChanges(); } else { user = new preg_user(); user.uid = userInfo.sub; user.email = userInfo.email; user.first_name = userInfo.name; user.avatar = userInfo.picture; user.social_type_id = (int)SysConst.SocialTypes.google; user.time_created = DateTime.Now; connect.preg_user.Add(user); SysMethod.createAccountNop(user); connect.SaveChanges(); user = connect.preg_user.Where(c => c.uid == userInfo.sub && c.social_type_id == (int)SysConst.SocialTypes.google).FirstOrDefault(); } preg_auth auth = connect.preg_auth.Where(c => c.user_id == user.id).FirstOrDefault(); if (auth == null) { auth = new preg_auth() { user_id = user.id }; connect.preg_auth.Add(auth); } auth.token = context.OwinContext.Request.Headers["access_token"]; connect.SaveChanges(); var identity = new ClaimsIdentity(context.Options.AuthenticationType); identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.social.ToString())); identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.user.ToString())); identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.dev.ToString())); identity.AddClaim(new Claim("id", user.id.ToString())); context.Validated(identity); } else { context.SetError("Invalid grant", SysConst.LOGIN_SOCIAL_FAILED); return; } } } } else if (context.UserName != null && context.Password != null) { var identity = new ClaimsIdentity(context.Options.AuthenticationType); PregnancyEntity connect = new PregnancyEntity(); UserDao dao = new UserDao(); //Check username & password string phone = context.UserName; string password = SysMethod.MD5Hash(context.Password); preg_user user = connect.preg_user.Where(c => c.phone == phone && c.password == password).FirstOrDefault(); if (user != null) { user.time_last_login = DateTime.Now; connect.SaveChanges(); identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.dev.ToString())); identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.user.ToString())); identity.AddClaim(new Claim("id", user.id.ToString())); context.Validated(identity); } else if (context.UserName == "WSPadmin" && context.Password == "WSPadmin") { identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.admin.ToString())); identity.AddClaim(new Claim("id", "0")); context.Validated(identity); } else { context.SetError("Invalid grant", SysConst.LOGIN_FAILED); return; } } }
private IEnumerator GetFacebookUserInfo(string graphURL = null, object data = null, UserType userType = UserType.Current) { bool finishedGettingInfo = false; FacebookUserInfo userInfo = new FacebookUserInfo(); if (!string.IsNullOrEmpty(graphURL)) { FB.API(graphURL, HttpMethod.GET, userInfoResult => { if (userInfoResult.Error != null) { Debug.LogError("Error getting FB user info: " + userInfoResult.Error); } else { Dictionary <string, object> userInfoObjects = Facebook.MiniJSON.Json.Deserialize(userInfoResult.RawResult) as Dictionary <string, object>; userInfo.id = userInfoObjects["id"].ToString(); var userFullName = userInfoObjects["name"].ToString(); var s = userFullName.Split(new char[] { ' ' }); userInfo.firstName = s[0]; userInfo.lastName = s[1]; var pictureData = userInfoObjects["picture"] as Dictionary <string, object>; var p = pictureData["data"] as Dictionary <string, object>; userInfo.pictureUrl = p["url"].ToString(); } finishedGettingInfo = true; }); } if (data != null) { var dictionaryDataObject = data as Dictionary <string, object>; userInfo.id = dictionaryDataObject["id"].ToString(); var userFullName = dictionaryDataObject["name"].ToString(); var s = userFullName.Split(new char[] { ' ' }); userInfo.firstName = s[0]; userInfo.lastName = s[1]; var pictureData = dictionaryDataObject["picture"] as Dictionary <string, object>; var p = pictureData["data"] as Dictionary <string, object>; userInfo.pictureUrl = p["url"].ToString(); finishedGettingInfo = true; } while (!finishedGettingInfo) { yield return(null); } if (userInfo.pictureUrl != null) { yield return(StartCoroutine(CheckAndLoadImage(userInfo.id, userInfo.pictureUrl, !userType.Equals(UserType.Invitable), (texture) => { userInfo.ProfilePicture = Sprite.Create(texture, new Rect(0, 0, 64, 64), new Vector2(0.5f, 0.5f)); }))); } if (userType.Equals(UserType.Current)) { CurrentUserFacebookUserInfo = userInfo; if (OnUserInfoDownloadedEvent != null) { OnUserInfoDownloadedEvent.Invoke(); } UpdateFriendsList(); UpdateInventableFriendsList(); } else if (userType.Equals(UserType.Friend)) { FriendUserFacebookInfos.Add(userInfo); } else { InventableFriendsList.Add(userInfo); } }