我正在使用的网站使用Firebase身份验证,登录的不同用户对他们可以访问的页面拥有不同的权限.
登录的方式是设置类似于这篇文章:
我遇到的问题是,当他们访问新页面时,我正在尝试将令牌从客户端传递回服务器(几乎与在此Firebase文档中完成的方式相同),验证令牌并检查是否存在有权查看网页.
我正在努力找出最好(也是最安全)的方法.我考虑过以下选项:
我一直在尝试在请求标头中传递令牌,但据我所知,当用户点击指向其他页面的链接时(或者如果它在javascript中重定向),您无法添加标头.同样的问题适用于使用POST.
如果用户点击指向其他页面的链接,我该如何安全地将此信息传递到服务器并检查权限?
有没有办法从我的服务器发送电子邮件验证电子邮件?
这是在客户端上完成的方式:
authData.sendEmailVerification().then(function() {
Run Code Online (Sandbox Code Playgroud)
有没有办法在服务器上做到这一点?
Firebase提供的文档表明API提供与控制台相同的功能:
要访问Firebase控制台以管理Firebase用户并不总是很方便.管理员用户管理API提供对这些相同用户的编程访问.它甚至允许您执行Firebase控制台无法执行的操作,例如检索用户的完整数据以及更改用户的密码,电子邮件地址或电话号码.
但是参考文档没有列出重置用户密码的功能.我错过了什么吗?
我试图隐含以下代码: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