public async Task <IActionResult> GetUserInfo(AccountProviderNames provider, string token) { var loginInfo = provider == AccountProviderNames.Facebook ? await _facebookHelper.GetLoginProviderAsync(token) : await SocialHelper.VerifyGoogleTokenAsync(token); if (loginInfo == null) { this.AddAlertDanger($"Lỗi khi lấy thông tin từ hệ thống {provider}. Xin vui lòng thử lại. Token {token}"); return(RedirectToAction("Login")); } var accountProvider = await _accountService.GetAccountProviderByProvider(provider, loginInfo.ProviderId, token); if (accountProvider.FbProfileLink.Contains("facebook.com/app_scoped_user_id")) { return(RedirectToAction("ChangeFacebookUrl", "Account")); } var accountProviderExist = accountProvider != null; var auth = await _accountService.GetAuth(loginInfo); if (auth == null) { this.AddAlertDanger("Lỗi khi lấy thông tin đăng nhập. Tài khoản đã bị khóa hoặc xóa. Xin vui lòng liên hệ quản trị hệ thống"); return(RedirectToAction("Login")); } if (provider == AccountProviderNames.Facebook) { BackgroundJob.Enqueue <IFacebookJob>(m => m.ExtendAccessToken()); if (!accountProviderExist) { BackgroundJob.Enqueue <IFacebookJob>(m => m.UpdateFbPost(auth.Id, auth.Username, 1)); } } await SignIn(auth); return(RedirectToAction("Index", "Account")); }
public async Task <IActionResult> LinkProvider(AccountProviderNames provider, string token, string returnurl) { var info = provider == AccountProviderNames.Facebook ? await _facebookHelper.GetLoginProviderAsync(token) : await SocialHelper.VerifyGoogleTokenAsync(token); if (info == null) { this.AddAlertDanger($"Lỗi khi lấy thông tin từ hệ thống {provider}. Xin vui lòng thử lại. Token {token}"); } else { var r = await _accountService.UpdateAccountProvider(CurrentUser.Id, new UpdateAccountProviderViewModel() { Email = info.Email, Image = info.Image, Name = info.Name, Provider = provider, ProviderId = info.ProviderId }, CurrentUser.Username); if (r < 0) { this.AddAlertDanger($"Tài khoản {info.Provider} đã được liên kết với tài khoản khác. Vui lòng thử lại tài khoản khác"); } else { BackgroundJob.Enqueue <IFacebookJob>(m => m.ExtendAccessToken()); this.AddAlertSuccess($"Liên kết Tài khoản {info.Provider} thành công"); if (r == 2) { // tao moi fb id -> add new FbPost tu 2018 BackgroundJob.Enqueue <IFacebookJob>(m => m.UpdateFbPost(CurrentUser.Id, CurrentUser.Username, 1)); } } } if (!string.IsNullOrEmpty(returnurl)) { return(Redirect(returnurl)); } return(RedirectToAction("Index")); }