Firebase身份认证创建用户后,如何用Ruby客户端生成并发送邮箱验证链接?
结论
完全可以通过Ruby客户端实现该需求,调用对应接口后会直接复用你在Firebase控制台配置好的邮件模板发送,无需自行开发邮件发送和模板渲染逻辑。
实现步骤
你当前用的google-apis-identitytoolkit_v3库已经封装了对应能力,只需要在创建用户后追加OOB码请求逻辑即可:
- 创建用户时接住返回的用户ID和邮箱信息
- 构造OOB(Out Of Band)操作码请求,指定操作类型后调用接口即可触发Firebase自动发邮件
完整代码示例
require 'google/apis/identitytoolkit_v3' service_account = "./firebase-auth.json" service = Google::Apis::IdentitytoolkitV3::IdentityToolkitService.new service.authorization = Google::Auth::ServiceAccountCredentials.make_creds( json_key_io: File.open(service_account), scope: 'https://www.googleapis.com/auth/identitytoolkit' ) # 创建用户逻辑 request = Google::Apis::IdentitytoolkitV3::SignupNewUserRequest.new( email: 'sample@example.com', email_verified: false ) # 接住创建成功后返回的用户信息 user_resp = service.signup_new_user(request) user_id = user_resp.local_id user_email = user_resp.email # 发送免密登录链接请求,Firebase自动使用控制台配置的模板发邮件 oob_request = Google::Apis::IdentitytoolkitV3::GetOobCodeRequest.new( # 要发送邮箱验证链接的话,把下面的参数值改成 VERIFY_EMAIL 即可 request_type: 'PASSWORDLESS_SIGNIN', email: user_email, user_id: user_id, # 可选配置:登录/验证完成后跳转的业务地址,按需填写 continue_url: 'https://你的业务域名.com/登录后跳转路径' ) service.get_oob_code(oob_request)
补充说明
request_type字段控制邮件类型,除了免密登录、邮箱验证外,还支持密码重置等类型,所有类型都会匹配你在Firebase控制台对应分类下配置的模板内容- 接口调用后所有邮件发送逻辑都由Firebase处理,包括发件人地址、模板变量替换、国际化适配等,和其他官方语言SDK的调用效果完全一致
内容的提问来源于stack exchange,提问作者Shun.Tagami
相关产品推荐
相关产品推荐

