Разрешить только определенным пользователям вход в систему с использованием Everyauth - PullRequest
0 голосов
/ 28 марта 2012

У меня есть приложение expressjs с настройкой Everyauth.

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

Допустим, я хочу, чтобы пользователи входили в систему, чья электронная почта начинается с буквы "foo" (предположим, footest@gmail.com) или принадлежит к определенному домену, например adeptocorp.com (предположим, node@adeptocorp.com)

Пожалуйста, предоставьте мне какое-нибудь решение, чтобы решить эту ситуацию

1 Ответ

0 голосов
/ 28 марта 2012

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

Для других напишите кусок связующего промежуточного программного обеспечения, например:

function checkEmail(regex){
  return function (req, res, next) {
      // get everyauth.user via the everyauth helper
      if (!everyauth.user.email.test(regex)) {
          res.writeHead(403);
          res.end("e-mail address not allowed");
      }
      else { next(); }
  }
};

И используйте его сразу после everyauth, например:

connect // or express
...
.use(checkEmail)
...