1

我正在使用 Auth0 和 Heroku 创建一个应用程序,我想创建一个空白规则,只允许 .edu 地址能够登录。但是,空白骨架仅显示特定地址。

function (user, context, callback) {
    //we just care about NameOfTheAppWithWhiteList
    //bypass this rule for every other app
    if(context.clientName !== 'NameOfTheAppWithWhiteList'){
      return callback(null, user, context);
    }

var whitelist = [ 'user1@mail.com', 'user2@mail.com' ]; //authorized users
var userHasAccess = whitelist.some(
  function (email) {
    return email === user.email;
  });

if (!userHasAccess) {
  return callback(new UnauthorizedError('Access denied.'));
}

callback(null, user, context);
}  

关于如何弄清楚如何解决这个问题的任何建议?我是 JavaScript 新手。

4

2 回答 2

3

这也适用于来自特定国家/地区的 TLD 的电子邮件地址,例如.edu.ar

var userHasAccess = email.split('@')[1].split('.').slice(-3, -1).indexOf('edu') !== -1;
于 2015-03-31T20:31:52.207 回答
2

您可以使用正则表达式来检查电子邮件地址是否以.edu:

function (user, context, callback) {
  if (!/\.edu$/.test(user.email)) {
    return callback(new UnauthorizedError('Access denied.'));
  }

  callback(null, user, context);
} 
于 2015-03-31T20:18:50.417 回答