public async Task <IActionResult> FacebookLogin([FromBody] FacebookUserData userData) { var key = Extensions.KeyJwt(_configuration); var appUser = new ApplicationUser() { FullName = userData.Name, Email = userData.Email, UserName = userData.Email, Gender = userData.Gender.ToLower() == "male", Picture = userData.Picture.Data.Url }; var result = await _repository.CreateUser(appUser, userData.Password); if (!result.Succeeded) { return(new BadRequestObjectResult(Errors.AddErrorsToModelState(result, ModelState))); } await _repository.AddCustomer(new Customer { CustomerId = appUser.Id, JoinDate = DateTime.Now, FacebookId = userData.Id }); // var anonymousId = Request.Cookies["AnonymousId"]; await _repository.MoveCart(userData.AnonymousId, userData.Email); var localUser = await _repository.FindUserByUserName(userData.Email); return(Ok(await _repository.GenerateJwtToken(localUser, key))); }
public async Task <IActionResult> LoginFacebookCallback(FacebookUserData model, String returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { model.AnonymousId = Request.Cookies["AnonymousId"]; StringContent userFb = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); dynamic result = await Extensions.JsonDataFromApi($"api/auth/FacebookLogin", "post", userFb); var token = result.access_token.ToString(); if (await _claimPrincipalManager.LoginFbAsync(token)) { Response.Cookies.Append("jwt", token, new CookieOptions { Expires = DateTime.Now.AddDays(30) }); return(RedirectToLocal(returnUrl)); } return(View("LoginViaFacebook", "Login failed!")); } return(View(model)); }
public async Task <IActionResult> CheckUserExistedForFbLogin([FromBody] FacebookUserData model) { var user = await _repository.FindUserByUserName(model.Email); bool userExisted = user != null; if (userExisted) { var customer = await _repository.CurrentCustomer(user.Id); if (customer.FacebookId == model.Id) { await _repository.MoveCart(model.AnonymousId, model.Email); return (Json( new { isExisted = userExisted, data = await _repository.GenerateJwtToken(user, Extensions.KeyJwt(_configuration)) })); } } return(Json(new { isExisted = userExisted })); }
public async Task <ActionResult <string> > Login([FromQuery] string code) { if (code == null) { return(BadRequest()); } FacebookAccessToken accessToken = await this._facebookAuthService.GetAccessToken(code); if (accessToken == null) { return(BadRequest()); } FacebookUserData data = await _facebookAuthService.GetFacebookUserData(accessToken); if (data == null) { return(BadRequest()); } var user = await _userService.GetUserByEmail(data.Email); if (user == null) { user = new User { Email = data.Email }; user = await this._userService.Insert(user); } return(TokenUtil.GenerateToken(user, _jwtSettings)); }
public async Task <FacebookUserData> UserInfo(string token) { FacebookUserData facebookUserData1 = await _webApiHelper.GetAsync <FacebookUserData>(GraphUrl, "me", this.DefaultParamater(HttpMethod.Get, token), ""); FacebookUserData user = facebookUserData1; FacebookUserData facebookUserData = user; if (!string.IsNullOrEmpty(facebookUserData?.Id)) { FacebookUserData facebookUserData2 = user; FacebookUserAvatarData facebookUserAvatarData = await GetUserAvatar(user.Id, token); FacebookUserAvatarData facebookUserAvatarData1 = facebookUserAvatarData; string str1; if (facebookUserAvatarData1 == null) { str1 = null; } else { FacebookUserAvatarDataData datta = facebookUserAvatarData1.Datta; str1 = datta?.Url; } string str = str1; facebookUserData2.Avatar = str; } return(user); }
public void AddFacebookFriend(string id, string username) { FacebookUserData data = new FacebookUserData(); data.facebookID = id; data.username = Data.Instance.gameSettings.GetUsername(username); FacebookFriends.Add(data); }
void Awake() { if (!FB.IsInitialized) { FB.Init(InitCallback); } facebookUserData = FindObjectOfType <FacebookUserData>(); ShowUI(); }
private static void KisiyeFacebookFotografiEkle(FacebookUserData facebookUserInfo, Kullanici user) { user.Kisi.Fotograflari.Add(new KisiFoto { Aciklama = "Facobook profil fotoğrafı", DisKaynakId = "facebook", EklenmeTarihi = DateTime.UtcNow, ProfilFotografi = true, Url = facebookUserInfo.Picture.Data.Url }); }
private int ComparerData(FacebookUserData a, FacebookUserData b) { if (a.m_Installed && !b.m_Installed) { return(-1); } if (!a.m_Installed && b.m_Installed) { return(1); } return(1); }
public void SetUserData(FACEBOOK_FRIEND_GAMEINFO Data) { FacebookUserData facebookUserData = this.FindFriendData(TKString.NEWString(Data.szFaceBookID)); if (facebookUserData != null) { facebookUserData.m_GameName = TKString.NEWString(Data.szCharName); facebookUserData.nFaceCharKind = Data.nFaceCharKind; facebookUserData.Level = Data.nCharLevel; NmFacebookManager.instance.FriendsData[facebookUserData.m_ID] = facebookUserData; } }
public void OnClickInvateGame(IUIObject obj) { FacebookUserData facebookUserData = (FacebookUserData)obj.Data; if (facebookUserData == null) { return; } NmFacebookManager.instance.FriendRequestMessage(NrTSingleton <NrTextMgr> .Instance.GetTextFromFacebook("15"), facebookUserData.m_ID); GS_CHAR_CHALLENGE_INVITESNG_REQ gS_CHAR_CHALLENGE_INVITESNG_REQ = new GS_CHAR_CHALLENGE_INVITESNG_REQ(); gS_CHAR_CHALLENGE_INVITESNG_REQ.invite_sngtype = 1; SendPacket.GetInstance().SendObject(eGAME_PACKET_ID.GS_CHAR_CHALLENGE_INVITESNG_REQ, gS_CHAR_CHALLENGE_INVITESNG_REQ); }
private void AddListItem(FacebookUserData _ItemData) { TsLog.LogWarning("AddListItem _ItemData = {0} , GameName = {1}", new object[] { _ItemData.m_ID, _ItemData.m_GameName }); NewListItem newListItem = new NewListItem(this.m_ListBox.ColumnNum, true, string.Empty); NrCharKindInfo charKindInfo = NrTSingleton <NrCharKindInfoManager> .Instance.GetCharKindInfo(_ItemData.nFaceCharKind); if (charKindInfo != null) { newListItem.SetListItemData(3, charKindInfo.GetCharKind(), null, null, null); newListItem.SetListItemData(9, false); } else { newListItem.SetListItemData(3, false); newListItem.SetListItemData(9, true); } if (string.IsNullOrEmpty(_ItemData.m_GameName)) { newListItem.SetListItemData(4, false); newListItem.SetListItemData(5, false); newListItem.SetListItemData(7, _ItemData.m_Name, null, null, null); } else { newListItem.SetListItemData(4, _ItemData.m_GameName, null, null, null); newListItem.SetListItemData(5, _ItemData.m_Name, null, null, null); newListItem.SetListItemData(7, false); } if (_ItemData.Level != 0) { newListItem.SetListItemData(6, NrTSingleton <NrTextMgr> .Instance.GetTextFromInterface("178"), _ItemData, new EZValueChangedDelegate(this.OnClickInvateFriend), null); newListItem.SetListItemData(8, false); } else { newListItem.SetListItemData(6, false); newListItem.SetListItemData(8, NrTSingleton <NrTextMgr> .Instance.GetTextFromInterface("179"), _ItemData, new EZValueChangedDelegate(this.OnClickInvateGame), null); } newListItem.Data = _ItemData.m_ID; this.m_ListBox.Add(newListItem); }
public async Task <string> ExternalLoginOrRegister(string accessToken) { FacebookUserData userInfo = await this.GetFacebookUserData(accessToken); if (userInfo == null) { return(null); } UserEntity user = await this.userManager.FindByEmailAsync(userInfo.Email); if (user == null) { var appUser = new UserEntity { FirstName = userInfo.FirstName, LastName = userInfo.LastName, FacebookId = userInfo.Id, Email = userInfo.Email, UserName = userInfo.Email, PictureUrl = userInfo.Picture.Data.Url }; var result = await this.userManager.CreateAsync(appUser, Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Substring(0, 8)); if (result.Succeeded) { await this.appDbContext.SaveChangesAsync(); } } UserEntity localUser = await this.userManager.FindByNameAsync(userInfo.Email); if (localUser == null) { return(null); } return(await TokenGenerator.GenerateTokenAsync( this.jwtFactory.GenerateClaimsIdentity(localUser.UserName, localUser.Id), this.jwtFactory, localUser.UserName, this.jwtOptions, new JsonSerializerSettings { Formatting = Formatting.Indented })); }
private async Task <AuthenticateResponse> CheckFacebookUserIdDB(FacebookUserData facebook) { var user = await this._context.Users.SingleOrDefaultAsync(x => x.Email == facebook.Email); if (user == null) { user = new EntityUser() { FacebookId = facebook.Id.ToString(), Username = $"{facebook.FirstName} {facebook.LastName}", Email = facebook.Email, Activated = true, RegistrationDate = DateTime.Now }; await this._context.Users.AddAsync(user); await this._context.SaveChangesAsync(); } return(new AuthenticateResponse(user, this.generateJwtToken(user))); }
public async Task <IActionResult> FacebookAuthentication([FromBody] FacebookAuthViewModel model) { FacebookUserData userInfo = await this.authService.GetFacebookUserInfoAsync(model.AccessToken); ApplicationUser user = await userManager.FindByNameAsync(userInfo.Email); if (user == null) { user = new ApplicationUser { Name = userInfo.FirstName, Email = userInfo.Email, UserName = userInfo.Email, }; var result = await userManager.CreateAsync(user, Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Substring(0, 8)); } return(Ok(this.authService.GenerateJwtToken(user))); }
public async Task <IdentityResult> CreateUserAsync(AppUser user, FacebookUserData facebookUserData, string password) { var result = await this.userManager.CreateAsync(user, password).ConfigureAwait(false); if (!result.Succeeded) { return(null); } await this.identityDbContext.Customers .AddAsync(new Customer { IdentityId = user.Id, Location = new Domain.Model.ValueObjects.Location(), Locale = facebookUserData.Locale, Gender = facebookUserData.Gender }); await this.identityDbContext.SaveChangesAsync(); return(result); }
public void OnClickInvateFriend(IUIObject obj) { FacebookUserData facebookUserData = (FacebookUserData)obj.Data; if (facebookUserData == null) { return; } GS_FRIEND_APPLY_REQ gS_FRIEND_APPLY_REQ = new GS_FRIEND_APPLY_REQ(); gS_FRIEND_APPLY_REQ.i32WorldID = 0; TKString.StringChar(facebookUserData.m_GameName, ref gS_FRIEND_APPLY_REQ.name); SendPacket.GetInstance().SendObject(904, gS_FRIEND_APPLY_REQ); string empty = string.Empty; NrTSingleton <CTextParser> .Instance.ReplaceParam(ref empty, new object[] { NrTSingleton <NrTextMgr> .Instance.GetTextFromNotify("23"), "Charname", facebookUserData.m_Name }); }
private async Task <JwtRefreshTokenModel> _processUserDetails(FacebookUserData userInfo) { // 4. ready to create the local user account (if necessary) and jwt var user = await _userManager.FindByEmailAsync(userInfo.Email); if (user is null) { var appUser = new ApplicationUser { FirstName = userInfo.FirstName, LastName = userInfo.LastName, FacebookId = userInfo.Id, Email = userInfo.Email, UserName = userInfo.Email, PictureUrl = userInfo.Picture.Data.Url }; var result = await _userManager.CreateAsync(appUser, Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Substring(0, 8)); if (!result.Succeeded) { throw new InvalidOperationException( ModelState.ToString() ); } } else { user.PictureUrl = userInfo.Picture.Data.Url; var result = await _userManager.UpdateAsync(user); if (!result.Succeeded) { throw new InvalidOperationException( ModelState.ToString() ); } } // generate the jwt for the local user... var localUser = await _userManager.FindByNameAsync(userInfo.Email); if (localUser is null) { throw new InvalidOperationException( ModelState.ToString() ); } var roles = await _userManager.GetRolesAsync(localUser); var jwt = await TokenIssuer.GenerateJwt( _jwtFactory.GenerateClaimsIdentity(localUser.UserName, localUser.Id), _jwtFactory, localUser.UserName, roles.ToArray <string>(), _jwtOptions, new JsonSerializerSettings { Formatting = Formatting.Indented }); var refresh = TokenIssuer.GenerateRefreshToken(128); user.AddRefreshToken( refresh, _contextAccessor.HttpContext.Connection.RemoteIpAddress.ToString()); await _unitOfWork.CompleteAsync(); return(new JwtRefreshTokenModel(refresh, jwt)); }
public async Task <IActionResult> Facebook([FromBody] FacebookModel model) { var userInfo = new FacebookUserData(); try { var userInfoResponse = await Client.GetStringAsync($"https://graph.facebook.com/v3.0/me?fields=id,email,first_name,last_name,gender,locale,birthday,picture&access_token={model.AccessToken}"); userInfo = JsonConvert.DeserializeObject <FacebookUserData>(userInfoResponse); } catch (Exception ex) { return(new BadRequestObjectResult(new List <ErrorViewModel>() { new ErrorViewModel() { Code = "InvalidToken", Description = "Facebook token is not valid." } })); } if (userInfo.Picture != null) { try { var imageResponse = await Client.GetStringAsync($"https://graph.facebook.com/v3.0/{userInfo.Id}/picture?type=album&redirect=false"); var image = JsonConvert.DeserializeObject <FacebookPictureData>(imageResponse); userInfo.Picture = image; } catch (Exception ex) { Console.WriteLine(ex); } } var existingUser = await _userManager.FindByEmailAsync(userInfo.Email); if (existingUser == null) { var user = new ApplicationUser { FacebookId = userInfo.Id, Email = userInfo.Email, UserName = userInfo.FirstName + userInfo.LastName, PictureUrl = userInfo.Picture?.Data?.Url, Visibility = true, Nationality = "US" }; if (userInfo.Gender != null) { user.Gender = userInfo.Gender.Equals("male") ? Gender.Male : userInfo.Gender.Equals("female") ? Gender.Female : Gender.Other; } else { user.Gender = Gender.None; } if (userInfo.Birthday != DateTime.MinValue) { var dateOfBirth = new DateTime(day: userInfo.Birthday.Day, month: userInfo.Birthday.Month, year: DateTime.Now.Year); if (DateTime.Now >= dateOfBirth) { user.Age = DateTime.Now.Year - userInfo.Birthday.Year; } else { user.Age = DateTime.Now.Year - userInfo.Birthday.Year - 1; } } user.UserName = UserExtensions.RemoveDiacritics(user.UserName); var result = await _userManager.CreateAsync(user, Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Substring(0, 8)); if (!result.Succeeded) { return(new BadRequestObjectResult(result.Errors)); } else { existingUser = await _userManager.FindByNameAsync(user.UserName); } } var jwt = await Tokens.GenerateJwt(_jwtFactory.GenerateClaimsIdentity(existingUser.UserName, existingUser.Id), _jwtFactory, existingUser.UserName, _jwtOptions, new JsonSerializerSettings { Formatting = Formatting.Indented }, existingUser.ProfileComplete); return(new OkObjectResult(jwt)); }
void Awake() { facebookUserData = FindObjectOfType <FacebookUserData>(); }