public async Task <IActionResult> VerifyFactor([Bind("token")] string token, [Bind("CustomerId")] int CustomerId) { try { Customer customer = _ctx.Customer.AsNoTracking().SingleOrDefault(kh => kh.CustomerId == CustomerId); if (customer != null && !string.IsNullOrEmpty(customer.AuthyId)) { var validationResult = await _authy.VerifyTokenAsync(customer.AuthyId, token).ConfigureAwait(false); if (validationResult.Succeeded) { customer.PhoneNumberConfirmed = true; _ctx.Update(customer); _ctx.SaveChanges(); var claims = new List <Claim> { new Claim(ClaimTypes.Name, customer.FirstName + " " + customer.LastName), new Claim(ClaimTypes.Role, "Customer") }; ClaimsIdentity claimsIdentity = new ClaimsIdentity(claims, "Customer"); ClaimsPrincipal claimsPrincipal = new ClaimsPrincipal(claimsIdentity); await HttpContext.SignInAsync("Customer", claimsPrincipal); HttpContext.Session.SetObject <Customer>("Customer", customer); TempData["ThongBao"] = "Đăng ký thành công. Bảo mật 2 lớp thành công!!!"; return(RedirectToAction("Index", "Home")); } else { ViewBag.ResultVerify = $"Không thể xác minh +84{customer.PhoneNumber}. Vui lòng kiểm tra SĐT hoặc mã đã nhập có đúng không."; } } } catch (Exception e) { ViewBag.Result = e.Message; } ViewBag.CustomerId = CustomerId; //Fail return(View("VerifyUser")); }
public async Task <JsonResult> AuthorizeWithSmsToken(TokenVerificationModel data) { if (!ModelState.IsValid) { return(JsonModelStateErrors()); } var userRequest = await _userManager.GetCurrentUserAsync(); if (!userRequest.IsSuccess) { return(Json(userRequest)); } var currentUser = userRequest.Result; ResultModel <string> result; var authyToken = await _authy.GetUserAuthyTokenAsync(currentUser); if (!authyToken.IsSuccess) { return(Json(authyToken)); } if (data.Token.Length > 4) { result = await _authy.VerifyTokenAsync(authyToken.Result, data.Token); } else { //TODO: Extract phone and code from phone number result = await _authy.VerifyPhoneTokenAsync(currentUser.PhoneNumber, "MD", data.Token); } _logger.LogDebug(result.ToString()); if (!result.IsSuccess) { return(Json(result)); } await AddTokenVerificationClaim(currentUser); return(Json(result)); }
public async Task <IActionResult> VerifyToken(string phone, string token) { Customer khachHang = _context.Customer.SingleOrDefault(kh => kh.PhoneNumber == phone); if (khachHang != null && !string.IsNullOrEmpty(khachHang.AuthyId)) { var validationResult = await _authy.VerifyTokenAsync(khachHang.AuthyId, token).ConfigureAwait(false); if (validationResult.Succeeded) { khachHang.PhoneNumberConfirmed = true; _context.SaveChanges(); return(Json(new { Success = true, Message = $"Your mobile phone {phone} verify successfully." })); } } return(Content($"Không có khách hàng nào có điện thoại: {phone}")); }