Exemplo n.º 1
0
        public IActionResult ChangePassword([FromBody] ChangePassword request)
        {
            string account = _http.HttpContext.Session.GetString("account");

            if (string.IsNullOrEmpty(account))
            {
                return(Ok(new ResultResponseModel {
                    isSuccess = false, message = "登入時效已過,請重新登入。", redirectTo = "/login"
                }));
            }

            if (ModelState.IsValid)
            {
                Member user = _db.Members.Where(member => member.Account == account).FirstOrDefault();

                if (HashHelper.Hash(request.currentPassword, user.Salt) == user.Password)
                {
                    PasswordWithSalt pws = HashHelper.Hash(request.newPassword);

                    user.Password = pws.password;
                    user.Salt     = pws.salt;
                    _db.SaveChanges();
                }
                else
                {
                    return(Ok(new ResultResponseModel {
                        isSuccess = false, message = "輸入的密碼有誤,請重新輸入。"
                    }));
                }
            }

            return(Ok(new ResultResponseModel {
                isSuccess = true, message = "密碼已更新"
            }));
        }
Exemplo n.º 2
0
        public IActionResult SignUp([FromBody] SignUpRequestModel request)
        {
            if (ModelState.IsValid)
            {
                PasswordWithSalt pws = HashHelper.Hash(request.password);

                if (_db.Members.Where(member => member.Account == request.account).FirstOrDefault() == null)
                {
                    _db.Members.Add(new Member()
                    {
                        Account  = request.account,
                        Password = pws.password,
                        Salt     = pws.salt
                    });
                }
                else
                {
                    return(Ok(new ResultResponseModel {
                        isSuccess = false, message = "此組帳號已被註冊,請使用其他帳號。"
                    }));
                }

                _db.SaveChanges();

                return(Ok(new ResultResponseModel {
                    isSuccess = true, message = "signed up."
                }));
            }

            return(Ok(new ResultResponseModel {
                isSuccess = false, message = "帳號與密碼皆須至少8個字以上,且須含有英文字母及數字。"
            }));
        }
Exemplo n.º 3
0
        public InitialMembers()
        {
            PasswordWithSalt pws = HashHelper.Hash("test2020");

            members = new Member[] {
                new Member {
                    Account = "test2020", Password = pws.password, Salt = pws.salt, Username = "******", Address = "testAddress", Phone = "0912345678", Email = "*****@*****.**"
                }
            };
        }