如何为 Auth0 中的新用户发送密码更改电子邮件而不是验证电子邮件

How to send password change email instead of verification email for a new user in Auth0

我是 Auth0 的新手,我正在努力将 Auth0 与我的 NodeJS 应用程序集成。我已经用我的 NodeJS 应用程序设置了 Auth0,我也开始知道如何在 Auth0 中创建 API 并与我的应用程序集成。

现在我的疑问是,每当我在 Auth0 的用户管理下添加新用户时,都会向用户发送一封验证电子邮件,但我希望用户收到密码更改电子邮件而不是验证电子邮件,这是否可以实现?当我交叉检查大多数文档说使用管理 API 或身份验证 API 或实施规则来实现它时,但我不确定如何实施它。

由于我是 Auth0 的新手,有没有办法让我找到实现它的分步过程。

我一直在研究一个类似的用例,我使用 Auth0 管理客户端创建用户,然后使用 Auth0 身份验证客户端请求重置密码电子邮件。我一直在关注 here 描述的“使用自定义电子邮件模板发送 Auth0 更改密码电子邮件”工作流程。但是,它缺少一个实现示例:

import {
  AuthenticationClient,
  ManagementClient
} from "auth0";

const mc = new ManagementClient({
  domain: process.env.AUTH0_DOMAIN,
  clientId: process.env.AUTH0_CLIENT_ID,
  clientSecret: process.env.AUTH0_CLIENT_SECRET,
});

const ac = new AuthenticationClient({
  domain: process.env.AUTH0_DOMAIN,
  clientId: process.env.AUTH0_CLIENT_ID,
  clientSecret: process.env.AUTH0_CLIENT_SECRET,
});

(async function() {
  await mc.createUser({
    connection: "Username-Password-Authentication",
    email: "newuser@example.com",
    email_verified: false, // this is implicitly set to true when the user follows the reset password link in the email they receive, but should be false for now
    name: "New User",
    password: "A random placeholder conforming to your policy", // e.g. "npm install generate-password"
  });
  
  await ac.requestChangePasswordEmail({
    email: "newuser@example.com",
    connection: "Username-Password-Authentication",
  });
})()

最后,如果您要求电子邮件是邀请电子邮件,您可以在 Auth0 管理控制台中自定义重置密码电子邮件模板和重置密码页面。使用流动语法,您可以检查 user.email_verified == false 以有条件地将 isInvitation=true 参数附加到电子邮件的 {{ url }} 并在重置密码页面逻辑中测试此参数。在我的例子中,我使用 window.location.href.includes("isInvitation=true")。查看: