reactjs - 如何在 Firebase 身份验证电子邮件模板的操作链接 URL 中使用 firebase 的语言代码 (myFirebase.auth().languageCode)?

标签 reactjs firebase firebase-authentication

所以,我的网站是使用 ReactJS 构建的,提供多语言支持,并且我的路由格式如下:

http://localhost:3000/<alpha-2-country-code>/<action>

我正在尝试使用 Firebase 身份验证来验证用户在注册期间提供的电子邮件地址。这是我从 Firebase 身份验证获得的验证电子邮件链接:

http://localhost:3000/new-account?mode=verifyEmail&oobCode=XXX&apiKey=XXX&lang=fr

我当前的 React 项目设置是,当操作之前未指定 alpha-2-country-code 时,我会将用户重定向到错误页面 404 .

我的问题是,有没有办法从 myFirebase.auth().languageCode 中提取 fr ,以便我可以将其附加到我的操作链接 URL 中Firebase 身份验证电子邮件模板?我在官方文档中找不到与此相关的任何内容。

我希望 Firebase 生成的操作链接网址是

http://localhost:3000/fr/new-account?mode=verifyEmail&oobCode=XXX&apiKey=XXX&lang=fr

提前致谢!

(于 2020 年 1 月 31 日编辑)

坦白说,我已经设置了电子邮件操作处理程序,因为我正在使用 myFirebase.auth().applyActionCode(actionCode)验证用户的电子邮件。

因此,我当前的实现要求我将操作链接 URL 设置为 http://localhost:3000/en/new-account?mode=<action>&oobCode=<code>&lang=fr默认情况下,它将被重定向到 http://localhost:3000/fr/new-account?mode=<action>&oobCode=<code>&lang=fr因为 lang 等于 fr 而不是默认的 en

我只是想知道是否有更好的方法来做到这一点,因为这个链接 https://.../en/auth/...&lang=fr似乎有点违反直觉,因为它显示了两种相互冲突的语言。

如果 Firebase 能够在“自定义操作链接 URL”中公开更多“firebase 定义的”变量,而不是自动在后面附加操作、oobcode 和 lang,那就太好了,因为并非所有开发人员都喜欢将所有内容都塞进“自定义操作链接 URL”中。请求参数。

我不明白为什么这种余地会危及安全。

最佳答案

Firebase Auth 应该已将语言代码附加到您的验证电子邮件链接中。 这已记录在案here .

firebase.auth().languageCode = 'fr';
firebase.auth().currentUser.sendEmailVerification()
  .then(() => {
    // Email verification should be sent and the link will have &lang=fr
    // appended.
  })
  .catch((error) => {
    // Error occurred.
  });

关于reactjs - 如何在 Firebase 身份验证电子邮件模板的操作链接 URL 中使用 firebase 的语言代码 (myFirebase.auth().languageCode)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59960105/

相关文章:

html - CSS 变换移动点击处理程序?

java - 如何从 Firebase 实时数据库获取数据并将其显示在微调器中?

javascript - 使用 Firebase Auth (NextJS) 实现用户角色

android - 无法使用Firebase性能进行编译。 (无法找到方法...)

android - Ionic 2 Firebase initializeApp 和 onAuthStateChanged 慢

node.js - 带有 Firestore 错误 "Deadline Exceeded"的 Cloud Functions

node.js - Firebase,如何将身份验证服务与 node.js RESTapi 后端一起使用

javascript - 如何将值从父组件传递到子组件( react )

reactjs - 如何聚焦位于子组件中的输入字段

javascript - 如何在不使用路径元素坐标的情况下在 React 中的 SVG 路径元素上叠加文本?