所以,我的网站是使用 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/