Javascript Auth0电子邮件确认,如何优雅地处理注册

Javascript Auth0电子邮件确认,如何优雅地处理注册,javascript,authentication,oauth,jwt,auth0,Javascript,Authentication,Oauth,Jwt,Auth0,我正在使用auth0 我的应用程序要求用户确认他们的电子邮件 当用户注册时,他会收到此警报: Error: unauthorized. Check the console for further details. 这是因为用户尚未验证其电子邮件 如何“捕获”此事件/警报,以便将用户重定向到我选择的视图 感谢您的帮助这有几个不同的部分 1) 。您是否启用了电子邮件验证规则?(这是一个模板,可从Auth0 dashboard- function forceEmailVerification(use

我正在使用auth0

我的应用程序要求用户确认他们的电子邮件

当用户注册时,他会收到此警报:

Error: unauthorized. Check the console for further details.
这是因为用户尚未验证其电子邮件

如何“捕获”此事件/警报,以便将用户重定向到我选择的视图


感谢您的帮助

这有几个不同的部分

1) 。您是否启用了电子邮件验证规则?(这是一个模板,可从Auth0 dashboard-

function forceEmailVerification(user, context, callback) {

  console.log("force-email-verification");

  if(context.connection !== "MyDB") {
    return callback(null, user, context); 
  }

  if (!user.email_verified) {
    return callback(new UnauthorizedError('Please verify your email before logging in.'));
  } else {
    return callback(null, user, context);
  }
}
如果电子邮件未经验证,则会在规则管道中引发异常。它会将错误返回到您作为两个查询参数提供的callbackUrl上的应用程序-
error
error\u description
。然后由您决定如何处理此问题-下面是我专门编写的一个示例,以说明这是如何工作的-在例如,我正在使用一些express中间件来检查错误和错误描述,并将其转发给一个if-detected

2) 。只有在需要时,您还可以显式触发电子邮件验证电子邮件。这是一个到
https://{{tenant}}.auth0.com/api/users/{{user\u id}}}/发送验证电子邮件的POST请求
endpoint,传递带有Auth0 APIv1令牌(和空正文)的授权承载头。可通过向以下表单的端点传递体发出POST请求来获取令牌:
https://{{tenant}}.auth0.com/oauth/token
endpoint:

{
  "client_id": "{GLOBAL CLIENT ID}",
  "client_secret": "{GLOBAL CLIENT SECRET}",
  "grant_type": "client_credentials"
}
您可以从Auth0仪表板的帐户设置->高级下获取全局客户端id和客户端机密。请不要在SPA应用程序等上存储任何机密-只能从客户机密/受信任的应用程序(例如您拥有的传统MVC webapp)使用此端点


希望这有帮助。如果有任何不清楚的地方,请留下评论。

谢谢您的回答。我正在尝试这个@在这种情况下,您是否知道如何检索用户id。我需要它来触发重新发送电子邮件验证Hi Kane-你是在问如何从规则中检索用户id吗?