如何在Firebase创建Auth用户时禁用自动发送验证邮件?
可行,具体实现步骤如下
第一步:修改.NET端用户创建逻辑,禁用Firebase自动验证邮件
替换自动触发验证邮件的FirebaseAuthExtension.CreateAuthUser,直接调用Firebase Admin SDK的CreateUserAsync方法创建用户,核心是将EmailVerified设为false,避免自动触发验证邮件发送。示例代码:var userArgs = new UserRecordArgs { Email = "user@example.com", Password = "user-password", EmailVerified = false // 标记邮箱未验证,且不自动触发邮件发送 }; UserRecord userRecord = await FirebaseAuth.DefaultInstance.CreateUserAsync(userArgs);第二步:生成Firebase官方验证链接
使用Firebase Admin SDK的GenerateEmailVerificationLinkAsync方法生成有效验证链接,该链接与Firebase自动发送的链接功能完全一致,用户点击后即可完成邮箱验证。示例代码:var actionCodeSettings = new ActionCodeSettings { Url = "https://your-app-domain.com/verify-complete", // 用户验证完成后跳转的页面 HandleCodeInApp = false // 根据你的应用场景调整 }; string verificationLink = await FirebaseAuth.DefaultInstance.GenerateEmailVerificationLinkAsync(userRecord.Email, actionCodeSettings);第三步:通过Node.js微服务发送自定义验证邮件
将生成的verificationLink和用户邮箱传入Node.js微服务,使用Postmark调用自定义模板发送邮件。示例Node.js代码:const postmark = require("postmark"); const client = new postmark.ServerClient("YOUR_POSTMARK_SERVER_TOKEN"); async function sendCustomVerificationEmail(email, verificationLink) { await client.sendEmailWithTemplate({ From: "your-official-sender@example.com", To: email, TemplateId: YOUR_CUSTOM_TEMPLATE_ID, // 你的Postmark自定义模板ID TemplateModel: { verification_link: verificationLink, // 其他模板所需变量,如用户名、品牌名称等 } }); }关键注意事项
- 确保Firebase Admin SDK拥有生成验证链接的权限
- 验证链接默认有效期为1小时,可通过
ActionCodeSettings调整过期时间 - 用户点击链接完成验证后,Firebase会自动将用户的
emailVerified字段更新为true
内容的提问来源于stack exchange,提问作者La Bola Al Riel
相关产品推荐
相关产品推荐

