使用 express-validator 检查输入是用户名还是电子邮件

杰斯

我正在尝试验证一个登录请求,它接受一个可以是电子邮件或用户名的用户名和一个密码。如何使用 Express-Validator 执行此操作?

我正在阅读文档,验证器的工作方式是您必须将数据作为第二个参数传递。我不确定如何通过检查它是否也是用户名或密码来完成。

router.post("/", (req, res) => {
    const { nickname, password } = req.body;
    // Create a new object based on email or username
    const login = {};
    if (nickname.indexOf('@') === -1) {
        login.nickname = nickname;
    } else {
        login.email = nickname;
    }
    login.password = password;
    // JWT Sign...
});

使用验证器,我还想检查它是否

  • 用户名或电子邮件
  • 如果是电子邮件,请使用 isEmail() 验证器确保它是实际电子邮件
  • 如果是用户名,请确保它超过三个字符并且有一个实际的用户名。

试图

router.post("/", (req, res) => {
    const { nickname, password } = req.body;
    // Create a new object based on email or username
    const login = {};
    if (nickname.indexOf('@') === -1) {
        check('nickname').isLength({ 'min': 3 });
        login.nickname = nickname;
    } else {
        check('nickname').isEmail();
        login.email = nickname;
    }
    login.password = password;
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(422).json({ errors: errors.array() });
    }
});

似乎验证器不起作用。

埃德加·奥利瓦

试试这个,

npm install validator

npm install express-validator

然后

const {check, oneOf } = require('express-validator')
const validator = require('validator')

在您的验证功能中试试这个,

oneOf([
  check('nickname').isEmail(),
  check('nickname').not().isEmpty().isString().custom((value, {req})=>{
     if(!validator.isEmail(value)){
       req.body.flag = true
       // you can handler your req.body here .... 

     }
     return true
  })
]

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用node.js和mysql验证输入是用户名还是电子邮件

来自分类Dev

使用Express-validator时电子邮件验证中的问题

来自分类Dev

jQuery Validator插件-检查mysql数据库中的现有用户名/电子邮件

来自分类Dev

使用expressJS检查数据库中的用户名和电子邮件

来自分类Dev

使用电子邮件或用户名登录

来自分类Dev

使用用户名或电子邮件登录

来自分类Dev

使用+或。在电子邮件地址的用户名部分

来自分类Dev

使用express-validator存在参数

来自分类Dev

使用Express-Validator验证POST参数

来自分类Dev

使用Express-Validator验证POST参数

来自分类Dev

使用express-validator存在参数

来自分类Dev

使用expressjs验证器和mysql检查用户名和电子邮件是否已经存在

来自分类Dev

允许用户使用电子邮件或用户名使用 Passport、LocalStrategy 登录

来自分类Dev

在Django中使用电子邮件地址或用户名登录用户

来自分类Dev

允许用户使用电子邮件或用户名(AspNet.Identity)登录

来自分类Dev

如何使用解析云从用户Pointer检索用户名,电子邮件等

来自分类Dev

如何使用Cognito身份ID获取用户属性(用户名,电子邮件等)

来自分类Dev

如何使用解析云从用户Pointer检索用户名,电子邮件等

来自分类Dev

如何允许用户使用php中的用户名和电子邮件登录?

来自分类Dev

防止用户使用相同的用户名和电子邮件注册

来自分类Dev

Sails js,使用电子邮件或用户名查找用户

来自分类Dev

ASP.NET Identity 2电子邮件和用户名的分隔,并使用电子邮件登录

来自分类Dev

使用用户名或电子邮件使用codeigniter登录

来自分类Dev

nodejs express-validator:仅当值存在时才验证电子邮件格式

来自分类Dev

nodejs express-validator:仅当值存在时才验证电子邮件格式

来自分类Dev

OAuth2:使用电子邮件(而不是用户名)进行身份验证

来自分类Dev

ASP.NET身份使用电子邮件代替用户名

来自分类Dev

使用电子邮件ID从Active Directory查找用户名

来自分类Dev

使用Git克隆时通过电子邮件提供用户名

Related 相关文章

  1. 1

    使用node.js和mysql验证输入是用户名还是电子邮件

  2. 2

    使用Express-validator时电子邮件验证中的问题

  3. 3

    jQuery Validator插件-检查mysql数据库中的现有用户名/电子邮件

  4. 4

    使用expressJS检查数据库中的用户名和电子邮件

  5. 5

    使用电子邮件或用户名登录

  6. 6

    使用用户名或电子邮件登录

  7. 7

    使用+或。在电子邮件地址的用户名部分

  8. 8

    使用express-validator存在参数

  9. 9

    使用Express-Validator验证POST参数

  10. 10

    使用Express-Validator验证POST参数

  11. 11

    使用express-validator存在参数

  12. 12

    使用expressjs验证器和mysql检查用户名和电子邮件是否已经存在

  13. 13

    允许用户使用电子邮件或用户名使用 Passport、LocalStrategy 登录

  14. 14

    在Django中使用电子邮件地址或用户名登录用户

  15. 15

    允许用户使用电子邮件或用户名(AspNet.Identity)登录

  16. 16

    如何使用解析云从用户Pointer检索用户名,电子邮件等

  17. 17

    如何使用Cognito身份ID获取用户属性(用户名,电子邮件等)

  18. 18

    如何使用解析云从用户Pointer检索用户名,电子邮件等

  19. 19

    如何允许用户使用php中的用户名和电子邮件登录?

  20. 20

    防止用户使用相同的用户名和电子邮件注册

  21. 21

    Sails js,使用电子邮件或用户名查找用户

  22. 22

    ASP.NET Identity 2电子邮件和用户名的分隔,并使用电子邮件登录

  23. 23

    使用用户名或电子邮件使用codeigniter登录

  24. 24

    nodejs express-validator:仅当值存在时才验证电子邮件格式

  25. 25

    nodejs express-validator:仅当值存在时才验证电子邮件格式

  26. 26

    OAuth2:使用电子邮件(而不是用户名)进行身份验证

  27. 27

    ASP.NET身份使用电子邮件代替用户名

  28. 28

    使用电子邮件ID从Active Directory查找用户名

  29. 29

    使用Git克隆时通过电子邮件提供用户名

热门标签

归档