gpt4 book ai didi

javascript - Auth0邮箱确认,如何优雅的处理注册

转载 作者:行者123 更新时间:2023-11-30 15:02:55 33 4
gpt4 key购买 nike

我正在使用 auth0。

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

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

Error: unauthorized. Check the console for further details.

这是因为用户尚未验证他的电子邮件。

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

谢谢你的帮助

最佳答案

这有几个不同的部分。

1).您是否启用了电子邮件验证规则? (这是一个可从 Auth0 仪表板获得的模板 -

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 上将错误返回给您的应用程序 - errorerror_description。然后由您决定如何处理 - 这是一个 sample Node.js application我专门写信来说明这是如何工作的——在示例中,我使用一些快速中间件来检查错误和 error_description 并转发到 Custom controller / view。如果检测到。

2).仅在需要时,您还可以显式触发电子邮件验证电子邮件。这是对 https://{{tenant}}.auth0.com/api/users/{{user_id}}/send_verification_email 的 POST 请求
端点,传递带有 Auth0 APIv1 token (和空主体)的 Authorization Bearer header 。可以通过向 https://{{tenant}}.auth0.com/oauth/token 端点传递表单正文发出 POST 请求来获取 token :

{
"client_id": "{GLOBAL CLIENT ID}",
"client_secret": "{GLOBAL CLIENT SECRET}",
"grant_type": "client_credentials"
}

您可以在 Auth0 仪表板的帐户设置 -> 高级下获取全局客户端 ID 和客户端密码。请不要在 SPA 应用程序等上存储任何 secret - 使用此端点只能从客户端 secret /受信任的应用程序(例如您拥有的传统 MVC 网络应用程序)中完成。

希望这对您有所帮助。如果有任何不清楚的地方,请发表评论。

关于javascript - Auth0邮箱确认,如何优雅的处理注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46241343/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com