我有一个带有everyauth设置的expressjs应用程序。
Everyauth运行良好。现在,我希望everyauth允许用户登录到电子邮件id与正则表达式匹配的应用程序。
假设我希望电子邮件以字母"foo"开头的人登录(假设,footest@gmail.com)或者是像adeptocorp.com这样的特定域(假设node@adeptocorp.com)
请为我提供一些解决方案来解决这种情况
如果您使用密码身份验证(我认为这是因为您不必关心电子邮件地址),那么您可以使用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)