如何使用 passport-local 策略在用户中允许 + 字符?

How to allow + characters in user with passport-local strategy?

我正在对电子邮件地址使用 passport-local 策略。这会导致带有通用加号部分的 gmail 地址出现问题,例如。 example+test@gmail.com.

正在使用

import passport from 'passport';
import passportLocal from 'passport-local';
import bcrypt from 'bcrypt';


var LocalStrategy = passportLocal.Strategy;

passport.use(new LocalStrategy({
  // by default, local strategy uses username and password, we will override with email
  usernameField: 'email',
  passwordField: 'password',
  passReqToCallback: true
}, function (req, email, pass, cb) {
  // Store hash in your password DB.
  console.log("Passwort:LocalStrategy:Email", email);
  ...
})

控制台日志是 example test@gmail.com。如果我在数据库中将加号替换为空白,则登录有效。

如何让 passport 允许加上用户名?

我在我的项目中实现了 passport-local,它确实允许一个加号 - 不需要额外的代码。您确定是 passport 拒绝了 + 而不是其他验证中间件吗?