public async Task <IActionResult> PhoneNumberLogin(string returnUrl) { ViewBag.ReturnUrl = returnUrl; var model = new PhoneNumberLoginInputModel(); return(View(model)); }
public async Task <IActionResult> PhoneNumberLogin(PhoneNumberLoginInputModel model, string returnUrl) { if (ModelState.IsValid) { var user = _userManager.Users.Where(a => a.PhoneNumber == model.PhoneNumber && a.PhoneNumberConfirmed).FirstOrDefault(); if (user != null) { if (await _userManager.VerifyChangePhoneNumberTokenAsync(user, model.VerificationCode, model.PhoneNumber)) { await _signInManager.SignInAsync(user, true); if (Url.IsLocalUrl(returnUrl)) { return(Redirect(returnUrl)); } else if (string.IsNullOrEmpty(returnUrl)) { return(Redirect("~/")); } else { // user might have clicked on a malicious link - should be logged throw new Exception("invalid return URL"); } } else { ModelState.AddModelError(string.Empty, "验证码错误"); } } else { ModelState.AddModelError(string.Empty, "用户不存在"); } } return(View()); }