用途:为 Caffeine AI 应用增加邮箱地址验证能力,即向收件人发送带链接的邮件,收件人点击后证明其拥有该邮箱。链接指向应用自身的 /verify-email 前端页面。
主要能力:后端负责生成并保存链接令牌(verificationTokens),通过 MixinEmailVerification 确认;verifiedEmails 记录已验证地址。令牌一次性使用,24 小时后过期。sendVerificationEmail 为每个收件人发送带专属验证链接的独立邮件,返回 #ok 或 #err。
必要用法:五个步骤均为强制。执行 mops add caffeineai-email-verification 与 mops add caffeineai-email;声明两个稳定状态字段 verifiedEmails : VerifiedEmails.State 和 verificationTokens : VerificationTokens.State,并在迁移链头部用 VerifiedEmails.new()、VerificationTokens.new() 初始化;在 main.mo 中 include MixinEmailVerification(verifiedEmails, verificationTokens);调用 EmailVerification.sendVerificationEmail(verificationTokens, fromUsername, recipients, subject, htmlBody),正文必须含 {{VERIFICATION_URL}};前端安装 @caffeineai/email-verification 并提供免登录可达的公开路由 /verify-email,渲染调用 confirm() 的按钮。
前端规则:用 useEmailVerification 读取 URL 中的 ?token=,状态为 ready/pending/done/invalid/error;仅在按钮点击时调用 confirm(),切勿在页面加载或 effect 中调用;done 时显示已验证邮箱,invalid 时可提示重新发送。路由需注册在根路由下,位于任何需登录布局之外。
限制与注意:链接为 https://<应用域名>/verify-email?token=…,缺少前端路由会导致收件人落到不存在页面、邮箱永远无法验证。持有有效令牌者(含匿名主体)即可确认,无需账户。不要自行在用户资料上跟踪验证状态,应使用 contains。不要从应用代码调用 EmailClient.broadcastViaGateway。缺 {{VERIFICATION_URL}} 时函数返回 #err。0.1.x/0.2.x 升级需重新固定依赖、新增 verificationTokens 字段与迁移、更新 mixin 与发送调用并补前端路由。未提供收费或平台相关信息。