仅允许特定用户使用everyauth登录

时间:2012-03-28 14:04:03

标签: node.js express everyauth

我有一个expressjs应用程序与everyauth设置。

Everyauth工作正常。现在,我希望everyauth允许用户登录其电子邮件ID与正则表达式匹配的应用程序。

假设我希望人们登录,其电子邮件以字母“foo”(假设,footest @ gmail.com)开头,或者是特定域名,如adeptocorp.com(假设为node@adeptocorp.com)

请给我一些解决这种情况的解决方案

1 个答案:

答案 0 :(得分:0)

如果您使用密码验证(我认为原因,您不必关心电子邮件地址),那么您可以使用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)