Exemplo n.º 1
0
        public TokenModel NewPassword(ResetPaswordModel model)
        {
            var user = _unitOfWork.Repository <UserEntity>().Set.FirstOrDefault(x => _au.Id == x.Id);

            if (user != null)
            {
                var salt     = _cryptoContext.GenerateSaltAsBase64();
                var password = Convert.ToBase64String(_cryptoContext.DeriveKey(model.Password, salt));
                user.Salt     = salt;
                user.Password = password;

                return(_authTokenProvider.GetToken(user));
            }
            return(null);
        }
Exemplo n.º 2
0
        public TokenModel ResetPasword(ResetPaswordModel model)
        {
            var token = _unitOfWork.Repository <ForgotPaswordTokenEntity>().Include(x => x.User).FirstOrDefault(x => x.Code == model.Code && !x.Used);

            if (token != null)
            {
                var salt     = _cryptoContext.GenerateSaltAsBase64();
                var password = Convert.ToBase64String(_cryptoContext.DeriveKey(model.Password, salt));
                token.User.Salt     = salt;
                token.User.Password = password;
                token.Used          = true;

                _unitOfWork.Repository <UserEntity>().Update(token.User);
                _unitOfWork.Repository <ForgotPaswordTokenEntity>().Update(token);

                return(_authTokenProvider.GetToken(token.User));
            }

            return(null);
        }
Exemplo n.º 3
0
        public async Task <IActionResult> ResetPassword(ResetPaswordModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await this.userManager.FindByEmailAsync(model.Email);

                if (user != null)
                {
                    var result = await this.userManager.ResetPasswordAsync(user, model.Token, model.Password);

                    if (!result.Succeeded)
                    {
                        foreach (var erro in result.Errors)
                        {
                            ModelState.AddModelError("", erro.Description);
                        }
                        return(View());
                    }
                    return(View("Success"));
                }
                ModelState.AddModelError("", "Invalid Request");
            }
            return(View());
        }
Exemplo n.º 4
0
        public async Task <IActionResult> NewPassword([FromBody] ResetPaswordModel model)
        {
            var token = _forgotPaswordService.NewPassword(model);

            return(token != null?Ok(token) : (IActionResult)BadRequest());
        }