【问题标题】:How to normalize the input email?如何规范输入电子邮件?
【发布时间】:2020-10-17 14:15:50
【问题描述】:

当我遇到我在注册时使用规范化电子邮件来验证电子邮件时,我正在使用express-validator,因此我将规范化的电子邮件存储到服务器。

验证码:

router.post(
  "/signup",
  [
    check("name").not().isEmpty(),
    check("email").normalizeEmail().isEmail(),
    check("password").isLength({ min: 6, max: 15 }),
  ],
  userController.signupUser
);

输入邮箱:abc.123@mail.com

标准化电子邮件:abc123@gmail.com(存储在数据库中)

现在的问题是在登录时输入的电子邮件不匹配并显示无效的凭据。

【问题讨论】:

    标签: javascript node.js express email-validation express-validator


    【解决方案1】:

    您不能删除任何. or _,因为它是用户电子邮件的一部分。

    Here 和验证电子邮件地址的示例

    【讨论】:

    • 你能为我正在使用的库提出一个解决方案吗,因为我有意在后端有一个标准化的电子邮件。
    • 我对@9​​87654322@ 进行了简短的阅读,看来您应该只使用isEmail() 而不是normalizeEmail()。我建议简单地使用toLowerCase() 将其变为小写
    • 但我想使用规范化电子邮件,以便其他人无法使用相同签名的电子邮件进行帐户。
    • 嗯,这应该在您的桌子上完成,使其独一无二或手动检查。
    【解决方案2】:

    研究观察后发现,注册时使用的代码可以用来规范登录时的邮件,我只需要补充:

     router.post("/login",[check('email').normalizeEmail()], userController.loginUser);
    

    添加后电子邮件被转换为规范化的电子邮件,可以直接从请求中使用。

    【讨论】:

      【解决方案3】:

      您只需要在normalizeEmail () 中传递选项:

      normalizeEmail ({"gmail_remove_dots": false "})
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-23
        • 2011-09-24
        • 2018-12-29
        • 1970-01-01
        • 1970-01-01
        • 2010-12-04
        相关资源
        最近更新 更多