public async Task <bool> RestorePasswor(RestorePasswordModel model)
        {
            if (!model.IsCompare())
            {
                return(false);
            }

            var user = await GetByUserName(model.UserName);//GetFirst(m => m.UserName == model.UserName);

            if (user == null)
            {
                throw new CoreException("User Not Valid", 5);
            }
            if (!string.IsNullOrEmpty(model.Token))
            {
            }
            if (CheckUserOtp(user, model.Otp))
            {
                user.Password = RepositoryState.GetHashString(model.Password);
            }
            else
            {
                //4 Restore Password
                throw new CoreException("Error Otp", 4);
            }
            await Update(user);

            return(true);
        }
Exemple #2
0
        public virtual async Task <(LoginResult, TUser)> Login(string username, string password)
        {
            var user = _dbSet.Where(m => m.UserName == username && m.Password == RepositoryState.GetHashString(password)).FirstOrDefault();

            if (user == null)
            {
            }
            return(Login(user), user);
        }
        /// <summary>
        /// Set Refresh token for user
        /// </summary>
        /// <param name="user"></param>
        public void SetRefresh(TUser user)
        {
            var refresh = "";
            var random  = new Random();

            for (var i = 0; i < 10; i++)
            {
                refresh += random.Next(15);
            }
            user.RefreshToken = RepositoryState.GetHashString(refresh);
        }
        public async Task <bool> ChangePassword(TUser user, ChangePasswordModel model)
        {
            if (!model.IsCompare())
            {
                throw new CoreException("Compare password is not valid", 3);
            }
            if (user.Password != RepositoryState.GetHashString(model.OldPassword))
            {
                throw new CoreException(" Passwor is not valid", 2);
            }
            user.Password = RepositoryState.GetHashString(model.Password);
            await Update(user);

            return(true);
        }
Exemple #5
0
        public virtual async Task <bool> RegisterAsync(TUser model)
        {
            var user = await
                       _dbSet.FirstOrDefaultAsync(m => m.UserName == model.UserName &&
                                                  m.Password == RepositoryState.GetHashString(model.Password));

            if (user != null)
            {
                return(false);
            }
            model.Password = RepositoryState.GetHashString(model.Password);
            _dbSet.Add(model);
            _context.SaveChanges();
            return(true);
        }
Exemple #6
0
 public virtual async Task <NetResult <SuccessResult> > ChangePassword([FromBody] ChangePasswordModel model)
 {
     try
     {
         SuccessResult result = new SuccessResult();
         var           user   = _user.Get(this.UserId <TKey>());
         if (RepositoryState.GetHashString(user.Password) == RepositoryState.GetHashString(model.OldPassword))
         {
             result.Success = await _user.ChangePassword(user, model);
         }
         return(result);
     }
     catch (Exception ext)
     {
         return(ext);
     }
 }
        public virtual async Task <ClaimsIdentity> LoginClaims(string username, string password)
        {
            var user = await _dbSet.FirstOrDefaultAsync(m => m.UserName == username &&
                                                        m.Password == RepositoryState.GetHashString(password));

            if (user == null)
            {
                return(null);
            }
            _userRole.Where(m => m.UserId == user.Id);
            var clams = Claims(user);

            if (clams == null)
            {
                return(null);
            }
            var claimsIdentity = new ClaimsIdentity(clams, "Token", ClaimsIdentity.DefaultNameClaimType, ClaimsIdentity.DefaultRoleClaimType);

            return(claimsIdentity);
        }
        public virtual async Task <(LoginResult, TUser)> Login(LoginViewModal model)
        {
            if (AuthOptions.SetNameAsPhone)
            {
                model.UserName = RepositoryState.ParsePhone(model.UserName);
            }
            var user = _dbSet.Where(m => (m.UserName == model.UserName || m.Email == model.UserName) && m.Password == RepositoryState.GetHashString(model.Password)).FirstOrDefault();

            if (user == null)
            {
                throw new CoreException("User Name or Password not Found", 7);
            }

            if (AuthOptions.CheckDeviceId)
            {
                if (user.CheckDevice(model.DeviceId))
                {
                    user.ChangeLastIncome(model.DeviceId);
                    return(Login(user), user);
                }
                user.ShouldSendOtp = true;
                //TODO
                return(null, user);
            }
            return(Login(user), user);
        }
 public TUser CheckUserByUserName(string userName, string Password)
 {
     return(_dbSet.FirstOrDefault(m => m.UserName == userName && m.Password == RepositoryState.GetHashString(Password)));
 }
Exemple #10
0
        public virtual async Task <(LoginResult, TUser)> Login(LoginViewModal model)
        {
            var user = _dbSet.Where(m => m.UserName == model.UserName && m.Password == RepositoryState.GetHashString(model.Password)).FirstOrDefault();

            if (user == null)
            {
                return(null, null);
            }
            if (AuthOptions.CheckDeviceId)
            {
                if (user.DeviceList.Contains(model.DeviceId))
                {
                    return(Login(user), user);
                }
                return(null, user);
            }
            return(Login(user), user); /*
                                        * if (user.DeviceList.Contains(model.DeviceId) && AuthOptions.CheckDeviceId)
                                        * {
                                        * return (Login(user), user);
                                        * }
                                        * return (null, user);*/
        }