You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Clerk后端程序化创建用户后触发邮箱验证链接?

解决方法

1. 让创建的用户邮箱默认处于未验证状态

你之前直接传邮箱字符串给emailAddress字段,Clerk会默认把这个邮箱标记为已验证。要改变这个行为,只需把emailAddress改成对象数组,给目标邮箱设置verified: false:

const clerkUser = await clerkClient.users.createUser({
  emailAddress: [{
    emailAddress: data.email,
    verified: false // 强制设置为未验证状态
  }],
  firstName: data.firstName,
  lastName: data.lastName,
  password: data.password,
});

2. 手动触发邮箱验证邮件发送

用户创建成功后,从返回的clerkUser对象里拿到对应邮箱的ID,调用Clerk的sendVerification方法就能发送验证链接:

// 取用户的第一个邮箱地址ID(如果仅注册一个邮箱的话)
const targetEmailId = clerkUser.emailAddresses[0].id;

// 发送验证邮件
await clerkClient.emailAddresses.sendVerification({
  userId: clerkUser.id,
  emailAddressId: targetEmailId,
});

这样操作后,用户注册完成时邮箱会处于未验证状态,同时会收到验证链接,点击链接即可完成邮箱验证流程。如果需要调整验证邮件的内容,直接去Clerk后台的「邮件模板」板块修改「邮箱验证」模板即可。

内容的提问来源于stack exchange,提问作者cryxnet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 17:34:53