gpt4 book ai didi

javascript - 仅当它是电子邮件时才使用 express-validator 清理电子邮件,否则忽略

转载 作者:行者123 更新时间:2023-12-05 02:49:59 25 4
gpt4 key购买 nike

我正在制作一个 API,其中我将用户名和密码作为 req.body,以便我可以对用户进行身份验证。
(简而言之登录功能)
用户可以输入电子邮件或用户名或手机号码。在后端,如果是电子邮件,我想规范化用户名。我这样做是因为我在注册时正在标准化电子邮件,因此我需要用标准化电子邮件检查它。

想要做这样的事情:(一个简短的伪代码)

username <- take input from request  
check if username is email:
if yes then *sanitize* username

我现在的登录 Rest API:

// Login user
router.post(
"/login",
[
check("username").not().isEmpty().escape(),
check("password").not().isEmpty().escape(),
],
(req, res, next) => {
// Finds validation errors and return error object
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
let { username, password } = req.body;
// Do authentication part
}
);

如果输入的是用户名,上面的代码可以正常工作,但我还想规范化电子邮件。

数据库内容是这样的

user : [
{
username: 'SOME_MOBILE',
password: 'SLDUS##$##KDJ'
},
{
username: 'SOME_EMAIL',
password: 'SLDU$%%##$2342423DJ'
},
{
username: 'my_username',
password: 'SLDUS##$#fssKDJ'
}
]

请帮忙!
谢谢

最佳答案

如果您希望您的用户名 是这样的电子邮件支票:

[body("username").notEmpty().escape().if(body("username").isEmail()).nomalizeEmail(), 
body("password").notEmpty().escape()]

关于javascript - 仅当它是电子邮件时才使用 express-validator 清理电子邮件,否则忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63800276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com