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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 20:22:12