public async Task <string> RegisterExternal(ExternalLoginBindingModel external) { AccountsRepository accountsRepository = new AccountsRepository(); var result = await accountsRepository.RegisterExternal(external); return(result); }
public async Task <ActionResult> ExternalLoginCallback(string returnUrl) { if (Request.IsAuthenticated) { return(RedirectToManageLoginsPage(UnexpectedExtrnalLoginError)); } var loginInfo = await OwinAuthenticationManager.GetExternalLoginInfoAsync(); if (loginInfo == null) { return(RedirectToAction("Login", new { error = "external-login-failure" })); } var user = await OwinUserManager.FindAsync(loginInfo.Login); if (user != null) { // The user has an acoount. Sign her in. await new LoginHelper(OwinUserManager, OwinAuthenticationManager).Sigin(user, true); return(RedirectToLocal(returnUrl)); } else { // If the user does not have an account, then prompt the user to create an account. ViewBag.LoginProvider = loginInfo.Login.LoginProvider; ViewBag.ReturnUrl = returnUrl; var model = new ExternalLoginBindingModel { Email = loginInfo.Email, Name = loginInfo.ExternalIdentity.Name }; return(View("ExternalLoginConfirmation", model)); } }
public async Task <string> RegisterExternal(ExternalLoginBindingModel external) { //var info = await AuthenticationManager.GetExternalLoginInfoAsync(); AccountsRepository accountsRepository = new AccountsRepository(); var result = await accountsRepository.RegisterExternal(external); return(result); }
public IActionResult GoogleOAuthLogin([FromForm] ExternalLoginBindingModel model) { var defaultRedirectUri = Url.Action("Index", "Home"); logger.LogDebug($"defaultRedirectUri = {defaultRedirectUri}"); return(Challenge(new AuthenticationProperties { RedirectUri = model.ReturnUrl ?? defaultRedirectUri, }, Startup.GoogleOidcAuthScheme)); }
public async Task <ActionResult> ExternalLoginConfirmation(ExternalLoginBindingModel model, string returnUrl) { // Get the information about the user from the external login provider var loginInfo = await OwinAuthenticationManager.GetExternalLoginInfoAsync(); if (loginInfo == null) { return(RedirectToAction("Login", new { error = "external-login-failure" })); } // Override the external login info with the values supplyed by the user. var signupModel = new SignupBindingModel { Email = model.Email, Name = model.Name, }; var loginHelper = new LoginHelper(OwinUserManager, OwinAuthenticationManager); // Create the user account var user = await loginHelper.Signup(signupModel, loginInfo, this.GetExtId(), Request.Url); var error = loginHelper.InspectErrorAfterSignup(user); if (String.IsNullOrEmpty(error)) { if (String.IsNullOrEmpty(returnUrl)) { return(RedirectToAction("Index", "Home")); } else { return(RedirectToLocal(returnUrl)); } } else { ModelState.AddModelError("", error); //return View("Signup"); return(View("ExternalLoginConfirmation", model)); } }
public async Task <IActionResult> ExternalLogin([FromBody] ExternalLoginBindingModel model) { var user = await _userRepository.FindAsync(x => x.Email == model.Email); if (user == null) { user = new ApplicationCore.Entities.Participant { Email = model.Email, Username = model.Email }; user = await _userRepository.AddAsync(user); var externalLogin = _mapper.Map <ExternalLogin>(model); await _externalLoginRepository.AddAsync(externalLogin); } else { var externalLogin = await _externalLoginRepository.FindAsync(x => x.UserId == user.Id && x.LoginProvider == model.LoginProvider && x.ProviderKey == model.ProviderKey); if (externalLogin == null) { externalLogin = _mapper.Map <ExternalLogin>(model); externalLogin.UserId = user.Id; await _externalLoginRepository.AddAsync(externalLogin); } } if (!user.Active || !user.Verified) { return(BadRequest(new BadRequestResponseModel(ErrorMessages.AuthenticatinError, "You are not active user."))); } var loginUser = _mapper.Map <ApplicationCore.Entities.Participant, UserViewModel>(user); return(Ok(GetTokenResponse(loginUser, false))); }
public async Task <string> RegisterExternal(ExternalLoginBindingModel external) { var infos = await AuthenticationManager.GetExternalLoginInfoAsync(); string info = Convert.ToString(AuthenticationManager.User.Identity.Name); if (info == null) { return("Error"); } var userdata = await UserManager.FindByEmailAsync(info); if (userdata != null) { var ID = userdata.Id; return(ID); } else { } return("Error"); }