Example #1
0
        public async Task <IActionResult> Send(string phone)
        {
            //Phone ==> read DB to indicate AuthyId
            Customer khachHang = _context.Customer.SingleOrDefault(kh => kh.PhoneNumber == phone);

            if (khachHang != null && !string.IsNullOrEmpty(khachHang.AuthyId))
            {
                var sendSMSResponse = await _authy.SendSmsAsync(khachHang.AuthyId).ConfigureAwait(false);

                if (sendSMSResponse.StatusCode == HttpStatusCode.OK)
                {
                    var smsVerificationSucceedObject = JsonConvert.DeserializeObject <AccessCodeVerifyResult>(await sendSMSResponse.Content.ReadAsStringAsync());
                    if (smsVerificationSucceedObject.Success)
                    {
                        //Send SMS success
                        return(Content($"Gửi token thành công tới {phone}"));
                    }
                    else
                    {
                        //Fail
                        return(Content($"Có lỗi gửi tin nhắn tới {phone}"));
                    }
                }
            }

            return(Content($"Không có khách hàng nào có điện thoại: {phone}"));
        }
        public async Task <JsonResult> SendTwoFactorAuthToken()
        {
            var userRequest = await _userManager.GetCurrentUserAsync();

            if (!userRequest.IsSuccess)
            {
                return(Json(userRequest));
            }
            var tokenRequest = await _authy.GetUserAuthyTokenAsync(userRequest.Result);

            if (!tokenRequest.IsSuccess)
            {
                return(Json(tokenRequest));
            }
            var result = await _authy.SendSmsAsync(tokenRequest.Result);

            return(Json(result));
        }
Example #3
0
        public async Task <IActionResult> Login([Bind("UserName", "Password")] LoginViewModel loginViewModel, string ReturnUrl = null)
        {
            Customer customer = _ctx.Customer.AsNoTracking().SingleOrDefault(p => p.UserName == loginViewModel.UserName && p.Password == MyHashTool.GetMd5Hash(loginViewModel.Password));

            if (customer != null)
            {
                if (customer.PhoneNumberConfirmed == false)
                {
                    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 nhập thành công";
                }
                else if (customer.PhoneNumberConfirmed == true && customer.AuthyId != null)
                {
                    // Gửi sms mã xác nhận
                    var sendSMSResponse = await _authy.SendSmsAsync(customer.AuthyId).ConfigureAwait(false);

                    if (sendSMSResponse.StatusCode == HttpStatusCode.OK)
                    {
                        var smsVerificationSucceedObject = JsonConvert.DeserializeObject <AccessCodeVerifyResult>(await sendSMSResponse.Content.ReadAsStringAsync());
                        if (smsVerificationSucceedObject.Success)
                        {
                            ViewBag.CustomerId = customer.CustomerId;
                            ViewBag.ResultSMS  = "Gửi mã thành công!";
                            //Send SMS success
                            return(View("VerifyUser"));
                        }
                        else
                        {
                            ViewBag.CustomerId = customer.CustomerId;
                            ViewBag.ResultSMS  = "Gửi mã thất bại!";
                            //Fail
                            return(View("VerifyUser"));
                        }
                    }
                    else
                    {
                        ViewBag.ResultSMS = "Gửi mã thất bại!";
                        return(View("Login"));
                    }
                }
            }
            else
            {
                ViewBag.ResultLogin = "******";
                return(View());
            }

            if (Url.IsLocalUrl(ReturnUrl))
            {
                return(Redirect(ReturnUrl));
            }
            return(RedirectToAction("Index", "Home"));
        }