示例#1
0
        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 }));
        }
示例#2
0
        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));
        }