在我的情况下,如何对用户名的唯一性进行验证并在警报中显示错误?

用户名

我使用Fomik和Yup在应用程序中实现授权和注册。

我的计算机上有一个本地服务器。该服务器的文件夹位于我项目的文件夹附近。多亏了adonis serve命令,我才启动了服务器。服务器启动时。我在以下表单字段中输入:用户名,密码和其他...然后,如果验证成功,请按Submit按钮,然后从本地服务器收到响应。此响应包含jwt令牌。

现在,在验证表单期间,我只需检查用户名字段中是否写入了某些内容。但是我仍然需要验证用户名是否唯一,如果不是唯一的并且具有该名称的用户名已经注册,则在警报中显示错误。

在我的情况下,如何对用户名的唯一性进行验证并在警报中显示错误?

SignupForm.js的一部分:

const SignupForm = () => {
 const history = useHistory();

    const {handleSubmit, values, handleChange, errors, handleBlur, isSubmitting, setSubmitting} = useFormik({  
      initialValues: {
          username: '',
          password: '',
          confirm_password: '',
          first_name: '',
          last_name: '',
          phone:''
      },
        validateOnBlur: false, 
        validateOnchange: false,
        validationSchema: yup.object().shape({    
          username: yup.string()      
           .required('This field is required'),
          password: yup.string()
           .required('This field is required')
           .min(6, 'This password is too short')
           .max(30, 'This passwors is too long'),

        /.......

      }),   
      onSubmit: async (formValues) => {
          console.log('submit', formValues);
          setSubmitting(true);
          try {
              const res = await api('api/auth/register', {
                  method:'POST',
                  body: JSON.stringify(formValues)
              });
              const token = res.token.token;
              localStorage.setItem('myToken', token);
              console.log('Result!',token);
              history.push("/home");  
          } catch(e) {
              console.error(e);

          } finally {
              setSubmitting(false);
          }   
      },  
    });

   return (
   <form className="fform" onSubmit={handleSubmit}>   
       <SignupInput
         label="username"
         id="username" 
         inputProps={{
           name:'username',
           value: values.username,
           onChange: handleChange,
           onBlur: handleBlur,
           disabled: isSubmitting,
       }}
       error={errors.username}

        /.......

       <button type="submit" disabled={isSubmitting}>Submit Form</button>       
   </form>
   );
};
dh

对于异步验证,可以使用formikvalidate函数。

像这样:

        ...
        validateOnchange: false,
    validate: (values, props) => {
      return fetch("https://reqres.in/api/users/2")
        .then(res => res.json())
        .then(res => {
          const errors = {};
          // if (res.data() === false) {
          if (res.data.email === "[email protected]") {
            errors.username = "user already exists !";
          }
          return errors;
        });
    },
    validationSchema: yup.object().shape({
        ...

编辑

使用伪造的api的工作示例在这里:

https://codesandbox.io/s/jovial-galois-ndbcu?file=/src/components/Signup/SignupForm.js

另请参阅docs:

https://jaredpalmer.com/formik/docs/guides/validation

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails仅在有条件的情况下验证唯一性

来自分类Dev

如何在没有任何电子邮件/用户名的情况下将我的电子邮件/用户名添加到旧提交中?

来自分类Dev

instagram 如何在没有像 PHP 中那样获取 ID 的情况下进行用户名系统

来自分类Dev

如何在不提供用户名/密码的情况下对git子模块进行修改

来自分类Dev

Rails 4在不区分大小写的情况下验证电子邮件的唯一性

来自分类Dev

Rails 4在不区分大小写的情况下验证电子邮件的唯一性

来自分类Dev

如何在内容中不包含用户名的情况下检查消息内容

来自分类Dev

如何在不更改任何字母的情况下更改我的github用户名的大小写?

来自分类Dev

C#我将如何向我的应用程序添加基本验证,以便在输入错误的用户名或密码时显示一个消息框

来自分类Dev

如何在不刷新Django中页面的情况下将用户名呈现为文本?

来自分类Dev

在没有OAuth的情况下将加密的用户名/密码存储在远程网站上以进行身份验证

来自分类Dev

不同范围条件下的唯一性验证

来自分类Dev

如何在给定多个用户名的情况下查询Active Directory?

来自分类Dev

如何在不传递用户名和传递url参数的情况下获取令牌?

来自分类Dev

如何在没有用户名和密码的情况下访问代理?

来自分类Dev

如何在知道损坏的文件系统上的用户名的情况下找到密码

来自分类Dev

如何在不传递用户名和传递url参数的情况下获取令牌?

来自分类Dev

在没有用户名和密码的情况下验证用户,但在 spring 中使用令牌

来自分类Dev

当传递空的用户名/密码时,Windows身份验证默认情况下与SQL Server一起使用

来自分类Dev

模型字段唯一性验证错误处理

来自分类Dev

我们是否可以在不进行模式匹配(仅使用J&K)的情况下在Agda中获得等式/身份证明的唯一性?

来自分类Dev

如何对随机生成的用户ID的唯一性进行单元测试

来自分类Dev

为什么“唯一性:true”验证在我的测试中不起作用(Rails)?

来自分类Dev

如何在javascript中仅允许一组特定的域并在不匹配的情况下引发警报?

来自分类Dev

我如何通过一个唯一的用户名合并多个关联数组

来自分类Dev

Rails创建联接表如何验证对的唯一性

来自分类Dev

Rails验证继承中的唯一性

来自分类Dev

Rails中的交叉唯一性模型验证

来自分类Dev

Rails多态模型中记录的唯一性验证

Related 相关文章

  1. 1

    Rails仅在有条件的情况下验证唯一性

  2. 2

    如何在没有任何电子邮件/用户名的情况下将我的电子邮件/用户名添加到旧提交中?

  3. 3

    instagram 如何在没有像 PHP 中那样获取 ID 的情况下进行用户名系统

  4. 4

    如何在不提供用户名/密码的情况下对git子模块进行修改

  5. 5

    Rails 4在不区分大小写的情况下验证电子邮件的唯一性

  6. 6

    Rails 4在不区分大小写的情况下验证电子邮件的唯一性

  7. 7

    如何在内容中不包含用户名的情况下检查消息内容

  8. 8

    如何在不更改任何字母的情况下更改我的github用户名的大小写?

  9. 9

    C#我将如何向我的应用程序添加基本验证,以便在输入错误的用户名或密码时显示一个消息框

  10. 10

    如何在不刷新Django中页面的情况下将用户名呈现为文本?

  11. 11

    在没有OAuth的情况下将加密的用户名/密码存储在远程网站上以进行身份验证

  12. 12

    不同范围条件下的唯一性验证

  13. 13

    如何在给定多个用户名的情况下查询Active Directory?

  14. 14

    如何在不传递用户名和传递url参数的情况下获取令牌?

  15. 15

    如何在没有用户名和密码的情况下访问代理?

  16. 16

    如何在知道损坏的文件系统上的用户名的情况下找到密码

  17. 17

    如何在不传递用户名和传递url参数的情况下获取令牌?

  18. 18

    在没有用户名和密码的情况下验证用户,但在 spring 中使用令牌

  19. 19

    当传递空的用户名/密码时,Windows身份验证默认情况下与SQL Server一起使用

  20. 20

    模型字段唯一性验证错误处理

  21. 21

    我们是否可以在不进行模式匹配(仅使用J&K)的情况下在Agda中获得等式/身份证明的唯一性?

  22. 22

    如何对随机生成的用户ID的唯一性进行单元测试

  23. 23

    为什么“唯一性:true”验证在我的测试中不起作用(Rails)?

  24. 24

    如何在javascript中仅允许一组特定的域并在不匹配的情况下引发警报?

  25. 25

    我如何通过一个唯一的用户名合并多个关联数组

  26. 26

    Rails创建联接表如何验证对的唯一性

  27. 27

    Rails验证继承中的唯一性

  28. 28

    Rails中的交叉唯一性模型验证

  29. 29

    Rails多态模型中记录的唯一性验证

热门标签

归档