首页 > 解决方案 > Auth0:让用户重新发送验证邮件

问题描述

我在 Auth0 中启用了用户/密码连接,我希望在继续之前验证电子邮件。我启用了相应的规则来强制进行电子邮件验证,一切似乎都按预期工作。

不过,我注意到验证电子邮件是在注册时发送的。我想要一个按钮来允许再次发送该电子邮件,但这似乎是不可能的。

用户如何从 UI 请求验证电子邮件?

调用https://<tenantName>.auth0.com/api/v2/jobs/verification-email不会,因为令牌需要update:users范围。我们可以通过对 的请求获得具有该范围的令牌https://<tenantName>.auth0.com/oauth/token,但这意味着客户端机密将被公开。

标签: emailauth0verification

解决方案


有一个解决方法,我用它作为邮件验证信号。auth0 创建一张并向我们发送一个带有票号作为查询字符串的链接以验证电子邮件,发送的链接如下所示:

https://<domain>/u/email-verification?ticket=h7CtBxPXiej7FtaKo0UHYJtdWPazaHhs#

您可以使用此 api 重新发送电子邮件验证链接,这是请求的示例:

curl --location --request POST 'https://<domain>/api/v2/tickets/email-verification' \
--header 'Authorization: Bearer <token> \
--header 'Content-Type: application/json' \
--header 'Cookie: __cfduid=d7aa37a65221ad2c0fd17ec71c76f13eb1603727648; did=s%3Av0%3A694d6590-1a83-11eb-877d-d1f701a6b5e1.qweiCQT%2Fah2JbVlHe8mU7En5egRFtrEmjETM%2B%2BIKmzc; did_compat=s%3Av0%3A694d6590-1a83-11eb-877d-d1f701a6b5e1.qweiCQT%2Fah2JbVlHe8mU7En5egRFtrEmjETM%2B%2BIKmzc' \
--data-raw '{
  "result_url": "<redirection_url>",
  "user_id": <auth0_user_id>,
  "ttl_sec": 0,
  "includeEmailInRedirect": false,
  "identity": {
    "user_id": "<user_id>",
    "provider": "auth0"
  }
}'

推荐阅读