如何获取oobCode用于本地化目的

sai*_*ter 2 firebase firebase-authentication

Firebase仅允许一种语言用于确认电子邮件.完美的产品对多语言应用程序毫无用处.我想制作自己的确认系统.唯一的问题是如何获得在firebase中生成的oobCode.site.com?mode=&oobCode=

谢谢.

Fra*_*len 7

目前无法oobCode通过Firebase身份验证API 生成有效值.它只能在(如您所说的"不可翻译")电子邮件中发送.

但是,如果需要,您可以使用自己的确认代码来验证电子邮件所有权,从而建立自己的电子邮件验证机制 你:

  1. 在服务器上生成随机的,不可思议的代码
  2. 将其发送到用户的电子邮件地址然后
  3. 当用户单击确认链接时,请在您回拨的同一服务器上拥有自己的端点
  4. 此时,您可以使用Firebase Admin SDK将emailVerified属性设置为true.

有关最后一步的示例,请参阅:https://firebase.google.com/docs/auth/admin/manage-users#update_a_user

感谢评论中的@Nikhil:或者您可以完全滚动自己的验证并使用Admin SDK设置emailVerified为true.有关此示例,请参阅Firebase文档.

  • 这个解决方案在今天并不能完全发挥作用。如果您设置自己的验证系统,则在用户需要重置密码时您将无法更新用户的密码。您必须使用 Firebase SDK 使用其“oobCode”更新密码,这意味着您必须让 Admin SDK 生成链接。您可以通过启动 Firebase 函数、使用 Admin SDK 生成这些链接,然后使用 SendGrid 等电子邮件提供商发送电子邮件来实现此目的。这也将为您节省大量时间。https://firebase.google.com/docs/auth/admin/email-action-links (2认同)