移动客户端,服务器,数据完整性规则,逻辑复制

时间:2014-10-25 21:41:06

标签: android ios design-patterns data-integrity duplication

我有移动应用程序和服务器。用户可以通过我的移动应用注册。用户输入他们的电子邮件和所需的密码才能注册。有适用于密码的规则,例如密码长度,允许的字符等。在允许用户进行注册之前,根据这些规则检查输入的每个密码。

我的假设是服务器完全负责数据完整性和对所有逻辑规则的遵从性。所以服务器必须检查所有数据。 因此,用户输入密码,密码(连同电子邮件)被发送到服务器,服务器检查两者并在出现任何问题时将错误返回给客户端,并带有描述错误的消息。 应用程序只显示以下消息:"密码必须包含至少一个数字"。用户通知。

BUT

服务器的回复可能需要一段时间才能到达客户端。用户可以不幸福的等待5秒后得到的消息。 因此,我认为在请求之前检查密码并快速通知用户违反规则会很好。 最简单的解决方案就是复制客户端代码中的规则。

这是问题提升的时刻。逻辑重复是我真正想要避免的。因此,我正在思考某种API端点,它以json或XML格式返回所有规则(例如:密码规则)。这些规则只能在服务器上配置,并且每当更改时 - 将被所有客户端明确应用。 在我看来,这两种解决方案都可以让我做出快速密码合规性检查"在客户端上,避免逻辑重复。但是它看起来不太复杂吗?

我的问题是:实现这些规则的最佳(推荐)方法是什么,以避免逻辑重复并使密码检查过程不依赖于网络连接质量?

1 个答案:

答案 0 :(得分:0)

您的密码检查INTEGRITY(长度,字符等)应始终在客户端处理。检查密码VALIDITY应始终由服务器处理。即使在3g上使用简单的auth查询到服务器端脚本,您也不会遇到太多延迟,除非服务器端的代码不合标准。

“重复规则”是模糊的,但无论哪种方式,我都没有看到你想要做的事情的问题。创建一个专门用于处理验证客户端的类,或者如果应用程序是HTML5,则使用像parsleyjs这样的库。