Javascript Auth0电子邮件确认,如何优雅地处理注册
我正在使用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
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吗?