Паспорт местного мангуста не соответствует точному адресу электронной почты - PullRequest
0 голосов
/ 08 февраля 2019

Я использую mongodb и узел js на моей стороне.Я использую паспорт местного мангуста до register и login пользователя.

Теперь проблема, с которой я сталкиваюсь: во время регистрации.Если пользователь регистрируется с помощью rajat.test@gmail.com, и он пытается войти с помощью rajat.Test@gmail.com.Тогда приложение дает доступ пользователю, что неправильно.Потому что во время регистрации пользователь дал все буквы в нижнем регистре.

Так что я хочу только подтвердить, что, как я могу включить чувствительность к регистру при аутентификации в паспорте местного мангуста?

Ниже мойкод регистрации и логина

регистрация

const user = new User(req.body);
try {
    await User.register(user, req.body.password);
    res.status(302).json({message: MESSAGE.USER_REGISTRATION_SUCCESS}); 
} catch(err) {
      handleErrors(res, err);
}

логин

const authRes = await User.authenticate()(req.body.email, req.body.password);
if (authRes && authRes.user) {
    const token = jwt.sign(authRes, config.SECRET);
    if (!authRes.user)
      res.status(400).json(authRes);
    else{
      res.status(302).json({user: authRes.user, token: `JWT ${token}`});                  
    }
} else {
     res.status(401).json({error: MESSAGE.INVALID_LOGIN_ERROR});
}

1 Ответ

0 голосов
/ 08 февраля 2019

Использование MongoDB

Выполнение без учета регистра совпадения с регулярным выражением при поиске пользовательского документа в функции входа в систему.

db.users.find( { email: { $regex: new RegExp(req.body.email, 'i') } } )

Использование Javascript

Преобразуйте свой адрес электронной почты в нижний регистр, а затем найдите документ пользователя в функции входа в систему.

db.users.find( { email: req.body.email.toLowerCase() } )

Примечание. В этом методе необходимо сохранитьпо электронной почте в качестве строчной в базе данных с помощью toLowerCase() или просто измените вашу схему на email: { type: String, lowercase: true }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...