コード例 #1
0
        public async ValueTask <bool> ForgotPassword(PatchUnknownPassword patch)
        {
            ApplicationUser user = await GetUserByEmail(patch.Email);

            if (user != null)
            {
                if (patch.NewPassword == patch.ConfirmNewPassword)
                {
                    string passwordHash = Hash.GetHashedValue(patch.NewPassword);
                    user.PasswordHash = passwordHash;
                    return(await UpdateUser(user));
                }
            }
            return(false);
        }
コード例 #2
0
ファイル: AccountController.cs プロジェクト: PySom/laapp
        public async ValueTask <IActionResult> Put(string code, [FromBody] PatchUnknownPassword model)
        {
            if (ModelState.IsValid)
            {
                var user = await _repo.Item().Where(u => u.Email.Equals(model.Email)).FirstOrDefaultAsync();

                if (user != null)
                {
                    if (code == user.Code && user.CodeIssued <= user.CodeWillExpire)
                    {
                        bool succeeded = await _acc.ForgotPassword(model);

                        if (succeeded)
                        {
                            return(Ok(new { succeeded }));
                        }
                    }
                    return(BadRequest(new { Message = "code is invalid or has expired" }));
                }
                return(BadRequest(new { Message = "user not found" }));
            }
            return(BadRequest(new { Errors = ModelState.Values.SelectMany(e => e.Errors).ToList() }));
        }