3

在双因素身份验证 (2FA) 中,表单要求仅由 6 位数字组成的代码,例如:064964

我使用著名的Ajv JSON Schema Validator

我无法为此代码构建验证方案:

export const code = {
  'type': 'object',
  'properties': {
     code: {
      'type': ['number'],
       'minimum': 6,
      'minLength': 6
    },
  },
  'required': ['code'],
};

你能帮助我吗?

4

1 回答 1

4

minLength仅适用于字符串,不适用于数字。给定的代码可以从 0 开始,你不能这样做minimum: 100000

如果您想使用纯 JSON Schema 来执行此操作,您需要将代码表示为字符串而不是数字。

JSON Schema 没有“数字中的位数”的验证关键字。

话虽如此,ajv 确实允许您添加自己的关键字,并为它们编写验证代码,但这意味着您的模式不能被其他人使用。

于 2018-11-23T16:17:59.600 回答