如何在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
相关产品推荐
相关产品推荐

