首页 > 解决方案 > Auth0 电子邮件白名单规则阻止用户登录过于严格

问题描述

我有一个 auth0 规则,它只允许使用我的域(如 @mybusiness.com)的用户通过 reactjs 应用程序中的 auth0 挂钩登录。

但是,如果用户不小心尝试使用他们无法登录的另一个电子邮件域登录 - 这很好 - 但是他们甚至无法使用另一封电子邮件重试,因为它们是“未经授权的”。这是不好的。

  // Access should only be granted to verified users.
  if (!user.email || !user.email_verified) {
    return callback(new UnauthorizedError('Access denied.'));
    //
  }

  const whitelist = ['mybusiness.com']; //authorized domains
  const userHasAccess = whitelist.some(function (domain) {
    const emailSplit = user.email.split('@');
    return emailSplit[emailSplit.length - 1].toLowerCase() === domain;
  });

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

  return callback(null, user, context);
}

我必须进入并从 Auth0 中删除用户以允许他们重试。我的想法是抛出一个不同的错误,但我尝试了一些平底船,但找不到任何关于 Auth0 规则的文档。注意* 这是 auth0 预定义规则,而不是自定义规则。

标签: reactjsauthenticationauth0

解决方案


推荐阅读