public async Task <IActionResult> ExternalLoginCallBack(string returnUrl = null, string remoteError = null) { returnUrl = returnUrl ?? Url.Content("~/"); var email = "fail"; GoogleOAuthViewModel model = new GoogleOAuthViewModel { ReturnUrl = returnUrl, ExternalLogins = (await signInManager.GetExternalAuthenticationSchemesAsync()).ToList() }; if (remoteError != null) { ModelState.AddModelError(string.Empty, $"Error from external provider: {remoteError}"); return(View("Login", model)); } var info = await signInManager.GetExternalLoginInfoAsync(); var emailToken = ""; if (info == null) { ModelState.AddModelError(string.Empty, $"Error loading external login information: {remoteError}"); return(View("Login", model)); } else { var testing = info.Principal.Identities.FirstOrDefault(); var token = testing.Claims.ToList(); emailToken = token[4].Value; } return(RedirectToAction("Create", "Students", new { email = emailToken })); }
public async Task <IActionResult> Login(string returnUrl) { //TODO: Clean this up : we don't need an actual logged in person so this is mock data to bypass / transfer to googleoauth var user = new IdentityUser { UserName = "******", Email = "*****@*****.**", PasswordHash = "B1lahbl@ah!" }; var result = await userManager.CreateAsync(user, "testtest"); await signInManager.SignInAsync(user, isPersistent : false); GoogleOAuthViewModel model = new GoogleOAuthViewModel { ReturnUrl = returnUrl, ExternalLogins = (await signInManager.GetExternalAuthenticationSchemesAsync()).ToList() }; return(View("login", model)); }