相关疑难解决方法(0)

如何将Firebase Auth Token从客户端传递到服务器?

我正在使用的网站使用Firebase身份验证,登录的不同用户对他们可以访问的页面拥有不同的权限.

登录的方式是设置类似于这篇文章:

  1. 用户使用两个参数登录 - "id"和"email"
  2. 服务器使用这些来创建自定义"uid",然后使用Firebase Admin SDK创建发送回客户端的自定义令牌.
  3. 客户端使用Javascript Firebase SDK登录 - firebase.auth().signInWithCustomToken()
  4. 现在用户已登录,他们可以点击不同的页面 - 即'/ foo','/ bar'

我遇到的问题是,当他们访问新页面时,我正在尝试将令牌从客户端传递回服务器(几乎与在此Firebase文档中完成的方式相同),验证令牌并检查是否存在有权查看网页.

我正在努力找出最好(也是最安全)的方法.我考虑过以下选项:

  • 用令牌构造一个URL,但我听说这不是一个好习惯,因为令牌暴露,会话劫持变得容易多了.

我一直在尝试在请求标头中传递令牌,但据我所知,当用户点击指向其他页面的链接时(或者如果它在javascript中重定向),您无法添加标头.同样的问题适用于使用POST.

如果用户点击指向其他页面的链接,我该如何安全地将此信息传递到服务器并检查权限?

authentication firebase firebase-authentication

15
推荐指数
1
解决办法
4540
查看次数

是否可以通过Firebase Admin SDK从我的Node.js服务器发送验证电子邮件?

有没有办法从我的服务器发送电子邮件验证电子邮件?

这是在客户端上完成的方式:

authData.sendEmailVerification().then(function() {
Run Code Online (Sandbox Code Playgroud)

有没有办法在服务器上做到这一点?

node.js firebase firebase-authentication firebase-admin

7
推荐指数
2
解决办法
2398
查看次数

我可以使用Firebase Admin SDK for Node重置用户密码吗?

Firebase提供的文档表明API提供与控制台相同的功能:

要访问Firebase控制台以管理Firebase用户并不总是很方便.管理员用户管理API提供对这些相同用户的编程访问.它甚至允许您执行Firebase控制台无法执行的操作,例如检索用户的完整数据以及更改用户的密码,电子邮件地址或电话号码.

但是参考文档没有列出重置用户密码的功能.我错过了什么吗?

node.js firebase firebase-admin

7
推荐指数
2
解决办法
3409
查看次数

Firebase:如何使用NodeJ发送密码重置电子邮件后端

我试图隐含以下代码:https : //firebase.google.com/docs/auth/web/manage-users#send_a_password_reset_email

var auth = firebase.auth();
var emailAddress = "user@example.com";

auth.sendPasswordResetEmail(emailAddress).then(function() {
  // Email sent.
}).catch(function(error) {
  // An error happened.
});
Run Code Online (Sandbox Code Playgroud)

但是我sendPasswordResetEmail在firebase admin中找不到该方法。

无论如何,我可以在后端执行此操作?

node.js firebase firebase-authentication google-cloud-functions

3
推荐指数
1
解决办法
3289
查看次数