コード例 #1
0
        public async Task <IActionResult> LogIn(LoginViewModel model)
        {
            var apiResponse = await _apiService.LogIn(model);

            if (!apiResponse.Success)
            {
                ModelState.AddModelError("Error", apiResponse.Messages.First());
                return(View(new LoginViewModel()));
            }
            ClaimsPrincipal          claimsPrincipal;
            AuthenticationProperties authProperties;
            var isSuccess = _jwtHelper.ValidateToken(apiResponse.AccessToken, out claimsPrincipal, out authProperties);

            if (!isSuccess)
            {
                ModelState.AddModelError("Error", "Json Web Token is invalid.");
                return(View(new LoginViewModel()));
            }
            await _logInHandler.LogInUser(claimsPrincipal, authProperties);

            _encryptionService.AddOrUpdateEncryptionKey(claimsPrincipal.Identity.Name, model.Password);
            OnPasswordSave(claimsPrincipal.Identity.Name, model.Password);

            return(RedirectToAction(controllerName: "Wallet", actionName: "Index"));
        }
コード例 #2
0
        public async Task <IActionResult> PasswordChange(PasswordChangeViewModel model)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("Error", "Change highlighted fields.");
                return(PartialView("~/Views/Auth/PasswordChange.cshtml", new PasswordChangeViewModel()));
            }
            ApiResponse apiResponse = await _apiService.ChangeMasterPassword(model);

            if (apiResponse.Success)
            {
                _encryptionService.AddOrUpdateEncryptionKey(AuthUserId, model.NewPassword);
                ViewBag.Message = apiResponse.Messages.First();
                return(PartialView("~/Views/Shared/_NotificationAlert.cshtml"));
            }
            else
            {
                ModelState.AddModelError("Error", apiResponse.Messages.First());
                return(PartialView("~/Views/Auth/PasswordChange.cshtml", new PasswordChangeViewModel()));
            }
        }